zoukankan      html  css  js  c++  java
  • Redis过期设置

    Redis支持按key设置过期时间,过期后值将被删除(在客户端看来是补删除了的)
    用TTL命令可以获取某个key值的过期时间(-1表示永不过期)

    127.0.0.1:6379> set name "ghj1976"
    OK
    127.0.0.1:6379> ttl name
    (integer) -1

    TTL key

    以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

    可用版本:
    >= 1.0.0
    时间复杂度:
    O(1)
    返回值:
    当 key 不存在时,返回 -2 。
    当 key 存在但没有设置剩余生存时间时,返回 -1 。
    否则,以秒为单位,返回 key 的剩余生存时间。
    在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。
    # 不存在的 key

    redis> FLUSHDB
    OK

    redis> TTL key
    (integer) -2

    # key 存在,但没有设置剩余生存时间

    redis> SET key value
    OK

    redis> TTL key
    (integer) -1

    # 有剩余生存时间的 key

    redis> EXPIRE key 10086
    (integer) 1

    redis> TTL key
    (integer) 10084

    下面命令先用EXISTS命令查看key值是否存在,然后设置了5秒的过期时间。5秒只有我们再回来查看。

     

    127.0.0.1:6379> set name "ghj1976"
    OK
    127.0.0.1:6379> exists name
    (integer) 1
    127.0.0.1:6379> expire name 5
    (integer) 1
    127.0.0.1:6379> ttl name
    (integer) 1
    127.0.0.1:6379> ttl name
    (integer) -2
    127.0.0.1:6379> exists name
    (integer) 0
    127.0.0.1:6379> get name
    (nil)

    上在是直接设置多少秒后过期,你也可以设置在某个时间点过期,下面例子是设置2011-09-24 00:40:00过期。

    127.0.0.1:6379> set name "guohongjun"
    OK
    127.0.0.1:6379> expireat name 1316805000
    (integer) 1
    127.0.0.1:6379> exists name
    (integer) 0
    127.0.0.1:6379> get name
    (nil)
    127.0.0.1:6379>

    PEXPIREAT key milliseconds-timestamp

    这个命令和 EXPIREAT 命令类似,但它以毫秒为单位设置 key 的过期 unix 时间戳,而不是像 EXPIREAT 那样,以秒为单位。

    可用版本:
    >= 2.6.0
    时间复杂度:
    O(1)
    返回值:
    如果生存时间设置成功,返回 1 。
    当 key 不存在或没办法设置生存时间时,返回 0 。(查看 EXPIRE 命令获取更多信息)
    redis> SET mykey "Hello"
    OK

    redis> PEXPIREAT mykey 1555555555005
    (integer) 1

    redis> TTL mykey           # TTL 返回秒
    (integer) 223157079

    redis> PTTL mykey          # PTTL 返回毫秒
    (integer) 223157079318

     

    参考资料:

    Redis 命令参考
    http://www.redisdoc.com/en/latest/index.html

    十五分钟介绍 Redis数据结构
    http://blog.nosqlfan.com/html/3202.html

    Redis系统性介绍
    http://blog.nosqlfan.com/html/3139.html

    Redis之七种武器
    http://blog.nosqlfan.com/html/2942.html

    试用redis
    http://try.redis.io/

    Redis 设计与实现
    http://www.redisbook.com/en/latest/

  • 相关阅读:
    struts文件上传,获取文件名和文件类型
    commons-fileupload.jar实现文件上传
    DiskFileItemFactory类的使用
    css控制两个表格的边线重合
    css控制同一个页面的两个表格,一个显示有边框线,而另一个没边框线
    Android无线调试_adbWireless
    Android无线调试(转)
    struts2用到的jar有那些
    Eclipse 中 Could not find *.apk的解决方案
    JavaScript修改注册表
  • 原文地址:https://www.cnblogs.com/ghj1976/p/3559583.html
Copyright © 2011-2022 走看看