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 文档许可。