EXPIREAT

用法
EXPIREAT key unix-time-seconds [ NX | XX | GT | LT ]
复杂度
O(1)
起始版本
1.2.0
ACL 类别
@keyspace, @write, @fast

EXPIREAT 命令与 EXPIRE 命令具有相同的效果和语义,但它不指定表示 TTL(time to live,生存时间)的秒数,而是接受一个绝对的 Unix 时间戳(自 1970 年 1 月 1 日以来的秒数)。过去的 Unix 时间戳将立即删除键。

有关该命令的具体语义,请参阅 EXPIRE 命令的文档。

背景

引入 EXPIREAT 是为了将 AOF 持久化模式中的相对超时转换为绝对超时。当然,它也可以直接用于指定给定键应在未来某个时间过期。

选项

EXPIREAT 命令支持一组选项

  • NX -- 仅当键没有过期时间时设置过期时间
  • XX -- 仅当键具有现有过期时间时设置过期时间
  • GT -- 仅当新过期时间大于当前过期时间时设置过期时间
  • LT -- 仅当新过期时间小于当前过期时间时设置过期时间

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

示例

127.0.0.1:6379> SET mykey "Hello"
OK
127.0.0.1:6379> EXISTS mykey
(integer) 1
127.0.0.1:6379> EXPIREAT mykey 1293840000
(integer) 1
127.0.0.1:6379> EXISTS mykey
(integer) 0

RESP2/RESP3 回复

以下之一

  • 整数回复:如果未设置超时时间,返回 0;例如,键不存在,或由于提供的参数而跳过了操作。

  • 整数回复:如果设置了超时时间,返回 1

历史

版本 变更
7.0.0

添加了选项:NXXXGTLT