redis - 是否可以确定 volatile key 的初始 TTL?

标签 redis

在我移植到 Redis 的键值持久性 api 中,我试图实现一个函数来更新键的生存时间。原始代码将 ttl 存储为时间戳和分钟数; ttl 通过写入新的时间戳来更新( key 在时间戳 + delta 后过期)。

我注意到 Redis 提供了一个 TTL 命令,但它只提供剩余时间。

我想知道是否有办法从 Redis 中检索原始 TTL(使用 EXPIRE 等设置),或者我是否需要将 TTL 元字段添加到我的值中'存储(就像原始代码一样)。

编辑: 我正在使用 Redis 服务器 v2.4.10

最佳答案

在内部,Redis 存储将 TTL 转换为 unix 时间戳。参见 function expireGenericCommand in db.c .因此,Redis 无法返回您指定的 TTL,只是因为它没有以该格式存储它。

如果它对您的应用很重要,您将需要添加一个 TTL 元字段。

关于redis - 是否可以确定 volatile key 的初始 TTL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465193/

相关文章:

json - 使用 redigo 从 Redis 将 json 部分转换为 Go 结构

groovy - Vertx 和 Redis : I cannot make them working together

php - 编写 PHP 批处理程序时的 Gearman 与 Redis

java - 使用 Jedi 通过 Java 客户端从 Redis 服务器上的列表中删除字符串

PHP 连续写入新 session (空)

ruby-on-rails - Sidekiq 工作线程中的 Redis 性能不佳

java - 考虑重新访问上面的条目或在您的配置中定义类型为 'org.springframework.data.redis.core.RedisTemplate' 的 bean

php - 在小型多人游戏中使用 memcached/redis/alternative 来更新对象的位置

ruby-on-rails - Redis 和 Memcache 还是只是 Redis?

python - 具有多线程的安全客观多人游戏状态