本文内容为 http://www.redis.io/commands/ttl 的翻译、注解、例子扩充及其它修改。感谢 Redis 作者 Antirez 为开源社区作出的贡献,本文保证最新、最准、最全以表示对其的敬意。欢迎留言纠错、提示更新或支持。
TTL key

返回一个拥有超时设置的键的剩余存在时间(TTL,time to live)

Returns the remaining time to live of a key that has a timeout.

该功能使得 Redis 客户端程序(Client)可以检测给定键的剩余可存在秒数,在这段时间内,该键为当前数据库的一部份。

This introspection capability allows a Redis client to check how many seconds a given key will continue to be part of the dataset.

Redis 2.6 或更老版本中,如果键 key 不存在,或存在但未关联过期时间,当前命令返回 -1

In Redis 2.6 or older the command returns -1 if the key does not exist or if the key exist but has no associated expire.

2.8 版本开始,根据不同类型的错误,返回值有所改变:

  • 如果键 key 不存在,当前命令返回 -2
  • 如果键 key 存在,但未关联过期时间,当前命令返回 -1

Starting with Redis 2.8 the return value in case of error changed:

The command returns -2 if the key does not exist.

The command returns -1 if the key exists but has no associated expire.

可以同时查看 PTTL 命令,该命令以毫秒为单位返回相同信息。

  • 返回以秒为单位的 TTL 值,或返回一个负值来提示某个错误的发生(具体见上述)。

    Integer reply: TTL in seconds, or a negative value in order to signal an error (see the description above).
  • redis> SET mykey "Hello"
    OK
    redis> EXPIRE mykey 10
    (integer) 1
    redis> TTL mykey
    (integer) 10
  • 版本支持

    1.0.0+

    时间复杂度(Time complexity)

    O(1)