• Redis 过期键的设置、获取和删除过期时间


    Redis 过期键的设置、获取和删除过期时间

    转自http://blog.51cto.com/littledevil/1813956

    设置过期


    默认情况下键是没有生存时间的,也就是永不过期,除非清空内存。

    设置的键的生存时间也很容易,可以通过4个命令设置(任选一即可):EXPIRE、PEXPIRE、EXPIREAT、PEXPIREAT命令,这4个命令看起来不同但是背后实现原理都是一样的。常用的其实就是EXPIRE和PEXPIRE这两个,前者是以秒设置过期时间,后者是以毫秒。

    以秒来设置,设置aaa这个键1秒后过期,1秒中以后再获取aaa这个键则返回空。

    wKioL1eB7QCjr6PPAAA_7WoHjeA590.jpg-wh_50

    以毫秒来设置,设置bbb这个键10毫秒后过期。

    wKiom1eB7QmB-BH-AABPwTa0DEk928.jpg-wh_50

    命令 说明
    EXPIREkey #s KEY的生存时间设置为#
    PEXPIREkey #ms KEY的生存时间设置为#毫秒
    EXPIREATkey timestamp KEY的生存时间设置为UNIX时间戳,单位为秒
    PEXPIREATkey timestamp KEY的生存时间设置为UNIX时间戳,单位为毫秒

    上面这4个命令只是单位和表现形式上的不同,但实际上EXPIRE、PEXPIRE以及EXPIREAT命令的执行最后都会使用PEXPIREAT来实行。

    比如使用EXPIRE来设置KEY的生存时间为N秒,那么后台是如何运行的呢:

    • 它会调用PEXPIRE命令把N秒转换为M毫秒

    • 然后获取当前的UNIX时间单位也是毫秒

    • 把当前UNIX时间加上M毫秒传递给PEXPREAT

    给键设置了过期时间,这个时间保存在一个字典里,也是键值结构,键是一个指针,指向真实的键,而值这是一个长整型的UNIX时间。

     

    获取键的过期时间


    如何查看一个键的生存时间多多少呢?可以使用ttl key来获取(以秒来显示),如下图:

    wKioL1eB7i_CKZGhAACYEYNvgh0020.jpg-wh_50

    另外还有一个命令是pttl key这个是以毫秒显示。

     

    清除键的过期时间


    可以使用PERSIST命令移除一个键的过期时间,如下图:

    wKiom1eB7jrBgUeSAABsa7F2kSA394.jpg-wh_50

    过期时间返回值的说明


    通过ttl可以获取一个键的整数返回值

    说明
    -2 过期且已删除
    -1 没有过期时间设置,即永不过期
    >0 表示距离过期还有多少秒或者毫秒
  • 相关阅读:
    跟layout_weight说88,轻松搞定百分比布局
    跟闪退、程序崩溃说88
    程序的需求层次
    开博
    第十章 数组与集合 发牌程序 实例代码
    C#面向对象基础01
    winform form
    html
    C#语言基础02
    C#语言基础01
  • 原文地址:https://www.cnblogs.com/zt007/p/8573864.html
Copyright © 2020-2023  润新知