Redis 中的默认 TTL 是多少?

What's default TTL in Redis?

我在网上找不到什么是 Redis 中的默认 TTL。 我知道我可以为特定的 SET 设置 TTL,但不知道什么是默认 TTL。 谁能告诉我 Redis 的默认生存时间是多少?

没有默认的 TTL。默认情况下,密钥设置为永远有效。

没有设置过期时间的key不会过期

如果您具体指的是 TTL command,从 v2.8 开始,如果未设置 EXPIRE 值,它将 return -2。

编辑: Itamar Haber 的评论是正确的,我记得是错误的:redis config 中没有针对全局 TTL 的此类设置。所以我删除了关于那个的部分。

Edit2:另请参阅官方文档中关于密钥默认过期的 link: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 文档说


从 Redis 2.8 开始,发生错误时的 return 值已更改:

命令returns -2 如果密钥不存在。 命令 returns -1 如果密钥存在但没有关联过期。