其中,TTL
命令将以秒为单位返回键的剩余生存时间:
而 PTTL
命令则会以毫秒为单位返回键的剩余生存时间:
- PTTL key
如果给定的键存在,但是并没有设置生存时间或者过期时间,那么 TTL
命令和 PTTL
命令将返回 :
- OK
- redis> TTL song_title
- (integer) -1
- redis> PTTL song_title
- (integer) -1
另一方面,如果给定的键并不存在,那么 TTL
命令和 PTTL
命令将返回 -2
:
- redis> TTL msg
- (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 版本开始可用。 |