Redis缓存 - 获取初始超时设置

时间:2016-02-21 08:05:24

标签: redis timeout

在Redis缓存中,是否可以检索在密钥上设置的原始TimeOut?我知道有一种方法可以检索任何键的待定TimeToLive,但我想要在创建密钥时设置的原始值。

1 个答案:

答案 0 :(得分:0)

不,Redis不存储密钥的原始TTL。理解需要它的用例会很有趣。

但是,您可以使用排序集来跟踪初始TTL。我们的想法是,在每次调用EXPIRE之后,在该集合上调用ZADD,并将该成员作为密钥的名称。得分应为小数,小数点前的部分是到期时间戳,小数部分是TTL(根据最大TTL用0填充)。

要检索初始TTL,请使用密钥名称在集合上调用ZSCORE,并在小数点后提取部分。

请注意,通过采用这种方法,您将不得不做一些内务处理,即从集合中删除过期的成员。为此,请定期从-inf调用ZREMBYSCORE到当前时间戳。