在一个键值持久性api中,我正在移植到Redis,我正在尝试实现一个更新密钥生存时间的函数。原始代码将ttl存储为时间戳和分钟数;通过写一个新的时间戳来更新ttl(密钥在时间戳+ delta之后到期)。
我注意到Redis提供了TTL
命令,但这只提供剩余时间。
我想知道的是,是否有办法从Redis中检索原始TTL(使用EXPIRE
设置等),或者我需要在我存储的值中添加TTL元字段(就像原始代码一样)。
编辑: 我正在使用Redis Server v2.4.10
答案 0 :(得分:4)
在内部,Redis存储将TTL转换为unix时间戳。见function expireGenericCommand in db.c。因此,Redis无法返回您指定的TTL,只是因为它不以该格式存储它。
如果对您的应用程序很重要,则需要添加TTL元字段。