redis - 初学者 Redis 命令

标签 redis ttl

我正在浏览 tutorial在 redis 上遇到了一个没有意义的命令。从我下面的代码中,我得到了一个肯定仍然存在的 key 的 -2 生存时间返回值。我的代码不应该返回一个永不过期的 -1 吗?

教程说:

Redis can be told that a key should only exist for a certain length of time. This is accomplished with the EXPIRE and TTL commands.

SET resource:lock "Redis Demo" EXPIRE resource:lock 120

This causes the key resource:lock to be deleted in 120 seconds. You can test how long a key will exist with the TTL command. It returns the number of seconds until it will be deleted.

TTL resource:lock => 113 // after 113s TTL resource:lock => -2

The -2 for the TTL of the key means that the key does not exist (anymore). A -1 for the TTL of the key means that it will never expire. Note that if you SET a key, its TTL will be reset.

SET resource:lock "Redis Demo 1"
EXPIRE resource:lock 120
TTL resource:lock => 119
SET resource:lock "Redis Demo 2"
TTL resource:lock => -1

这是我在交互式终端中输入的代码。我的假设是第 3 行应该返回 -1,表示永不过期。我从来没有设置过期时间,所以我不知道为什么我会返回 -2。

> SET loggedIn "True"  
OK 
> TTL logggedIn   
(integer) -2  
> GET loggedIn  
"True"

最佳答案

您有一个拼写错误:您设置了一个名为 loggedIn 的键,同时试图获取 loggedIn 的 TTL>

关于redis - 初学者 Redis 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40809751/

相关文章:

sql-server - SQL Server 中是否有类似 "Time to live"的选项?

mongodb - mongodb的ttl集合有什么好处? vs 从管家那里清除数据?

带有 Redis 的 Spring HttpSession 不保存 SESSION cookie 值

redis - Redis 中的 Celery 结果编码

php - 使用 php 和 redis

redis - 集合成员的 TTL

Redis - 存储和检索大量键的最有效方式

Redis 获取 key 模式

java - Aerospike 中列表元素的单独 TTL

state - flink MapState 的 TTL 是针对整个 MapState 实例还是针对 MapState 中的每个元素