ドキュメントのバージョンを表す整数値を格納するために 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 サーバーがリセットされているのでしょうか?