EXPIREAT

语法
EXPIREAT key unix-time-seconds [NX | XX | GT | LT]
可用版本
Redis Open Source 1.2.0
时间复杂度
O(1)
ACL 类别
@keyspace, @write, @fast,

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

请参考 EXPIRE 的文档,了解此命令的具体语义。

背景

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

选项

EXPIREAT 命令支持一组选项

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

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

示例

SET mykey "Hello" EXISTS mykey EXPIREAT mykey 1293840000 EXISTS mykey

RESP2/RESP3 回复

以下之一

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

历史

  • 从 Redis 7.0.0 版本开始:添加了选项:NXXXGTLT
评价此页面
返回顶部 ↑