Redis 提供了 EXPIRE 命令用于设置秒级精度的生存时间,它可以让键在指定的秒数之后自动被移除:

    PEXPIRE 命令则用于设置毫秒级精度的生存时间,它可以让键在指定的毫秒数之后自动被移除:

    1. PEXPIRE key milliseconds

    EXPIRE 命令和 PEXPIRE 命令在生存时间设置成功时返回 1 ;如果用户给定的键并不存在,那么命令返回 0 表示设置失败。

    以下是一个使用 EXPIRE 命令的例子:

    上面的代码通过执行 EXPIRE 命令为 msg 键设置了 5 秒钟的生存时间:

    • 但如果我们在 5 秒钟之后访问 msg 键,那么 Redis 将返回一个空值,因为 msg 键已经自动被移除了。

    表 12-1 展示了 msg 键从设置生存时间到被移除的整个过程。


    表 12-1 msg 键从设置生存时间到被移除的整个过程


    而以下则是一个使用 PEXPIRE 命令的例子:

    1. OK
    2.  
    3. redis> PEXPIRE number 6500
    4. (integer) 1
    5.  
    6. "10086"
    7.  
    8. redis> GET number -- 6500 毫秒之后访问,键不再存在
    9. (nil)

    表 12-2 展示了 number 键从设置生存时间到被移除的整个过程。


    当用户对一个已经带有生存时间的键执行 EXPIRE 命令或是 PEXPIRE 命令时,键原有的生存时间将会被移除,并设置上新的生存时间。

    举个例子,如果我们执行以下命令,将 msg 键的生存时间设置为 10 秒钟:

    然后在 10 秒钟之内执行以下命令:

    1. redis> EXPIRE msg 50

    那么 msg 键的生存时间将被更新为 50 秒钟,并重新开始倒数,表 12-3 展示了这个更新过程。


    表 12-3 msg 键生存时间的更新过程


    其他信息