ruby-on-rails - 为什么 REDIS key 总是过期?

标签 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 key 是否有默认的到期日期?还是 REDIS 服务器在我不知情的情况下被重置?

最佳答案

Redis 键没有默认到期日期。

你确定没有删除你的 key 吗?

你能检查一下你的 Redis 服务器是否重启了吗? 您是否在 Redis 数据集上使用任何形式的持久化?

关于ruby-on-rails - 为什么 REDIS key 总是过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18090819/

相关文章:

ruby-on-rails - 通过 Heroku Rails 应用程序使用 DNS 和 SMTP 检查进行电子邮件验证

javascript - 在其中添加额外代码后,删除操作不起作用

redis - 将转储文件加载到 redis 数据库的问题

ruby-on-rails - 使用has_many时如何指定foreign_key和class :through?

ruby-on-rails - Ruby on Rails - 如何处理 omniauthable 设计中的陈旧访问 token ?

ruby - ruby 如何找到 gem ?

ruby-on-rails - "use this if it isn' t 空白的 Ruby 速记,否则使用那个“

ruby-on-rails - 设计重定向到成功登录似乎卡在第一次登录尝试

amazon-web-services - elasticache如何复制配置组default.redis3.2以便更改一个参数而不写入103个未更改的键

php - 使用 phpredis-ubuntu 12.04