EXPIREAT命令的作用和EXPIRE命令类似,都用于为key设置生存时间。不同点在于EXPIREAT命令接受的时间参数是Unix时间戳。
命令格式
EXPIREAT key timestamp
可用版本:>=1.2.0
时间复杂度:O(1)
给指定的key设置一个过去的时间戳(小于当前时间戳)时,Redis会立即删除掉相应的key。
EXPIREAT是为了在AOF持久模式下,将key的相对过期时间转换为绝对时间戳而引入的。当然,你也可以将其用作在未来某一时间点内相关key过期失效。
命令参数
- timestamp:指定key在指定的时间戳过期,精度到秒。
命令返回值
EXPIREAT命令返回有2种情况:
- 返回1,当设置成功时。
- 返回0,当指定的key不存在时。
示例
redis> SET mykey HongKong
OK
redis> EXPIREAT mykey 1 # 过期时间设置成功,返回1
(integer) 1
redis> GET mykey # 过期时间为过去时间,所以该key被删除
(nil)
redis> EXPIREAT mykey 1539919200 # key不存在,过期时间设置失败,返回0
(integer) 0
redis> SET mykey HongKong
OK
redis> EXPIREAT mykey 1539919200
(integer) 1
redis> TTL mykey
(integer) 104
redis> TTL mykey
(integer) 57
redis> TTL mykey # key到过期时间戳后过期
(integer) -2
redis> GET mykey
(nil)