9

REDIS を使用してデータ (文字列) を保存します。例: キー「s1」ストア値「hello world」。キー「s2」ストア値「さようなら」。5 分後に s1 の自動期限切れ (空きメモリ) が必要ですが、s2 は期限切れになりません。私はC#、.net 4.0を使用しています>>コードの書き方は?ありがとう

4

4 に答える 4

7

すべてのキーに有効期限が設定されるキャッシュとして Redis を使用する場合は、代わりに次の構成を使用することを検討してください (例として最大メモリ制限を 2 メガバイトと仮定します)。

maxmemory 2mb
maxmemory-policy allkeys-lru

この構成では、アプリケーションが EXPIRE コマンド (または同等のコマンド) を使用してキーの存続時間を設定する必要はありません。これは、2 メガバイトのメモリ制限に達している限り、近似 LRU アルゴリズムを使用してすべてのキーが削除されるためです。

基本的に、この構成では、Redis は memcached と同様の方法で動作します。Redis を LRU キャッシュとして使用することに関するより広範なドキュメントがあります。

于 2015-11-24T12:12:42.100 に答える
7

EXPIRE に関するドキュメントでは、キーごとに EXPIRE 値を秒単位で設定できます。

EXPIRE s1 300

キー s1 は 5 分で期限切れになります。

こちらのドキュメントを参照してください: REDIS EXPIRE

C# コードを探している場合は、REDIS へのアクセスに使用しているライブラリによって異なると思います。他にも役立つ SO の質問がいくつかありますが、expire が機能しなかった問題についても説明します: Redis Expire が機能しません

于 2014-06-30T04:26:15.277 に答える
1

デフォルトでは、redis はキーを期限切れにしません。有効期限を -1 に設定します。設定しない限り、「s2」時間は無制限です。

通常、Redis キーは関連付けられた有効期限なしで作成されます。キーは、たとえば DEL コマンドを使用するなど、明示的な方法でユーザーが削除しない限り、単純に永久に存続します。
コマンドの EXPIRE ファミリは、キーによって使用される追加のメモリを犠牲にして、指定されたキーに有効期限を関連付けることができます。キーに有効期限が設定されている場合、Redis は指定された時間が経過したときにキーを確実に削除します。

http://redis.io/commands/expire (再び)

于 2014-06-30T15:18:57.167 に答える