0

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

4

1 に答える 1

0

Redis キーにはデフォルトの有効期限がありません。

キーを削除するものは何もありませんか?

Redis サーバーが再起動されるかどうかを確認できますか? Redis データセットで何らかの形式の永続化を使用していますか?

于 2013-08-06T21:32:48.343 に答える