HEXPIREAT

语法
HEXPIREAT key unix-time-seconds [NX | XX | GT | LT] FIELDS numfields
  field [field ...]
可用版本
Redis 开源版 7.4.0
时间复杂度
O(N),其中 N 为指定字段的数量
ACL 类别
@write, @hash, @fast,

HEXPIREAT 的效果和语义与 HEXPIRE 相同,但它不是指定 TTL(生存时间)的秒数,而是采用自 Unix 纪元以来的绝对 Unix 时间戳(以秒为单位)。过去的时间戳将立即删除该字段。

有关此命令的具体语义,请参阅 HEXPIRE

选项

HEXPIREAT 命令支持一组选项。

  • NX -- 对于每个指定的字段,仅在字段没有过期时间时设置过期时间。
  • XX -- 对于每个指定的字段,仅在字段已有过期时间时设置过期时间。
  • GT -- 对于每个指定的字段,仅在新的过期时间大于当前过期时间时设置过期时间。
  • LT -- 对于每个指定的字段,仅在新的过期时间小于当前过期时间时设置过期时间。

对于 GTLT,非易失性键被视为具有无限 TTL。NXXXGTLT 选项互斥。

示例

redis> HSET mykey field1 "hello" field2 "world"
(integer 2)
redis> HEXPIREAT mykey 1715704971 FIELDS 2 field1 field2
1) (integer) 1
2) (integer) 1
redis> HTTL mykey FIELDS 2 field1 field2
1) (integer) 567
2) (integer) 567

RESP2/RESP3 回复

以下之一

  • 数组回复。对于每个字段:
    • 整数回复:如果提供的哈希键中不存在该字段,或者提供的键不存在,则返回 -2
    • 整数回复:如果指定的 NX, XX, GT 或 LT 条件未满足,则返回 0
    • 整数回复:如果过期时间已设置/更新,则返回 1
    • 整数回复:当使用 0 秒或毫秒调用 HEXPIREHPEXPIRE,或使用过去的 Unix 时间(秒或毫秒)调用 HEXPIREATHPEXPIREAT 时,返回 2
  • 简单错误回复:
    • 如果解析失败,缺少强制参数,指定了未知参数,或者参数值类型错误或超出范围。
    • 如果提供的键存在但不是哈希类型。

评价此页
返回顶部 ↑