在我移植到 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/