我正在使用 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/