其中,TTL 命令将以秒为单位返回键的剩余生存时间:

    PTTL 命令则会以毫秒为单位返回键的剩余生存时间:

    1. PTTL key

    如果给定的键存在,但是并没有设置生存时间或者过期时间,那么 TTL 命令和 PTTL 命令将返回 :

    1. OK
    2.  
    3. redis> TTL song_title
    4. (integer) -1
    5. redis> PTTL song_title
    6. (integer) -1

    另一方面,如果给定的键并不存在,那么 TTL 命令和 PTTL 命令将返回 -2

    1. redis> TTL msg
    2. (integer) 0

    出现这种情况的原因在于 TTL 命令只能返回秒级精度的生存时间,所以当给定键的剩余生存时间不足一秒钟时,TTL 命令只能返回 0 作为结果。这时,如果我们使用精度更高的 命令去检查这些键,那么就会看到它们实际的剩余生存时间,表 12-6 非常详细地描述了这一情景。


    表 12-6 PTTL 命令在 TTL 命令返回 0 时仍然可以检测到键的剩余生存时间


    属性
    复杂度TTL 命令和 PTTL 命令的复杂度都为 O(1) 。
    版本要求TTL 命令从 Redis 1.0.0 版本开始可用, 命令从 Redis 2.6.0 版本开始可用。