【发布时间】:2018-03-06 14:35:13
【问题描述】:
我无法在网上找到 Redis 中的默认 TTL 是什么。 我知道我可以为特定的 SET 设置 TTL,但不知道什么是默认 TTL。 谁能告诉我 Redis 中的默认生存时间是多少?
【问题讨论】:
我无法在网上找到 Redis 中的默认 TTL 是什么。 我知道我可以为特定的 SET 设置 TTL,但不知道什么是默认 TTL。 谁能告诉我 Redis 中的默认生存时间是多少?
【问题讨论】:
没有默认的 TTL。默认情况下,密钥设置为永远存在。
【讨论】:
没有设置过期时间的key不会过期。
如果你的意思是TTL command,从v2.8开始,如果没有设置EXPIRE值,它将返回-2。
编辑: Itamar Haber 的评论是真的,我记得是假的:redis config 中没有这样的设置用于全局 TTL。所以我删除了关于那个的部分。
Edit2:另请参阅此处有关密钥默认到期的官方文档链接:https://redis.io/commands/expire#appendix-redis-expires
【讨论】:
我想默认值设置为“-1”,这意味着永远。
127.0.0.1:6379> set datakey "my-data"
OK
127.0.0.1:6379> TTL datakey
(integer) -1
127.0.0.1:6379>
从 Redis 2.8 开始,发生错误时的返回值发生了变化:
如果键不存在,该命令返回 -2。 如果密钥存在但没有关联的过期,该命令返回 -1。
【讨论】: