Redis 提供了 EXPIRE
命令用于设置秒级精度的生存时间,它可以让键在指定的秒数之后自动被移除:
而 PEXPIRE
命令则用于设置毫秒级精度的生存时间,它可以让键在指定的毫秒数之后自动被移除:
- PEXPIRE key milliseconds
EXPIRE
命令和 PEXPIRE
命令在生存时间设置成功时返回 1
;如果用户给定的键并不存在,那么命令返回 0
表示设置失败。
以下是一个使用 EXPIRE
命令的例子:
上面的代码通过执行 EXPIRE
命令为 msg
键设置了 5 秒钟的生存时间:
但如果我们在 5 秒钟之后访问
msg
键,那么 Redis 将返回一个空值,因为msg
键已经自动被移除了。
表 12-1 展示了 msg
键从设置生存时间到被移除的整个过程。
表 12-1 msg
键从设置生存时间到被移除的整个过程
而以下则是一个使用 PEXPIRE
命令的例子:
- OK
- redis> PEXPIRE number 6500
- (integer) 1
- "10086"
- redis> GET number -- 在 6500 毫秒之后访问,键不再存在
- (nil)
表 12-2 展示了 number
键从设置生存时间到被移除的整个过程。
当用户对一个已经带有生存时间的键执行 EXPIRE
命令或是 PEXPIRE
命令时,键原有的生存时间将会被移除,并设置上新的生存时间。
举个例子,如果我们执行以下命令,将 msg
键的生存时间设置为 10 秒钟:
然后在 10 秒钟之内执行以下命令:
- redis> EXPIRE msg 50
那么 msg
键的生存时间将被更新为 50 秒钟,并重新开始倒数,表 12-3 展示了这个更新过程。
表 12-3 msg
键生存时间的更新过程