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/

  • 相关阅读:
    以正确的方式开源 Python 项目
    一个备胎的自我修养
    关于我们 | 读书马上
    基于libevent, libuv和android Looper不断演进socket编程
    libuv 与 libev 的对比
    OCaml Language Sucks
    Practical Common Lisp
    learning
    WebApi系列~QQ互联的引入(QConnectSDK)
    知方可补不足~用xsl来修饰xml
  • 原文地址:https://www.cnblogs.com/ghj1976/p/3559583.html
Copyright © 2011-2022 走看看