EXPIREAT

将键的过期时间设置为 Unix 时间戳。

语法

EXPIREAT key unix-time-seconds [NX | XX | GT | LT]

引入版本:1.2.0

复杂度摘要:O(1)

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

该命令的具体语义请参考EXPIRE的文档。

必需参数

key

键名称。

unix-time-seconds

Unix 时间戳形式的绝对过期时间(以秒为单位)。过去的时间戳会立即删除该键。

可选参数

这些选项是相互排斥的。

NX

仅当键没有有效期时才设置有效期。

XX

仅当键已经过期时才设置过期时间。

GT

仅当新的到期时间大于当前的到期时间时才设置到期时间。出于 GT 的目的,非易失性键被视为无限 TTL。

LT

仅当新的到期时间小于当前的到期时间时才设置到期时间。出于 LT 的目的,非易失性键被视为无限 TTL。

示例

redis> SET mykey "Hello"
OK
redis> EXISTS mykey
(integer) 1
redis> EXPIREAT mykey 1293840000
(integer) 1
redis> EXISTS mykey
(integer) 0

详细说明

背景

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

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

以下之一: * 整数回复:如果未设置超时,则为 0;例如,键不存在,或者由于提供的参数而跳过操作。 * 整数回复: 1(如果设置了超时)。

RESP3

以下之一: * 整数回复:如果未设置超时,则为 0;例如,键不存在,或者由于提供的参数而跳过操作。 * 整数回复: 1(如果设置了超时)。

资料来源:Redis 官方 EXPIREAT 文档;中文内容参考 Redis 文档许可。