为什么REDIS密钥会一直过期?

时间:2013-08-06 21:28:15

标签: ruby-on-rails ruby redis

我正在使用REDIS存储一个表示文档版本的整数值。在我的代码中,对REDIS的唯一调用如下:

 def get_document

   ...
   version = REDIS.get("version").to_i
   ...

 end

 def publish_document

    ...
    REDIS.incr("version")
    ...

 end

这个想法是每次我们发布文档时,其版本号都会上升。它必须始终上升,永不下降。当我们检索文档时,我们将知道我们正在使用哪个版本。

问题是,时不时地,版本号会回落到0,这意味着REDIS键“版本”以某种方式被删除(因为nil.to_i => 0)。但是我的代码中没有任何地方可以删除“版本”,也没有发送过期日期。

有谁知道发生了什么事? REDIS密钥是否有默认的到期日期?或者在我不知情的情况下重置REDIS服务器?

1 个答案:

答案 0 :(得分:0)

Redis密钥没有默认的到期日期。

您确定没有删除密钥吗?

您可以检查Redis服务器是否重新启动? 您是否在Redis数据集上使用任何形式的持久性?