0

StackExchange.Redis クライアントを使用して Azure Redis Cache にアクセスしています。以下のようにハッシュセットを作成しています。

Database.HashSet("HashSetKey", "EntryKey", "EntryValue");
Database.KeyExpire("HashSetKey", TimeSpan.MaxValue); 

有効期限を TimeSpan.MaxValue として指定していますが、ハッシュセットは数分間使用されないと削除されます。

私は何が欠けていますか?

4

1 に答える 1

1

TimeSpan.MaxValue をキーの有効期限に設定しても意味がありません。決して削除してはならないため、まったく設定しないでください。そして、これが StackExchange redis クライアントの機能です。TimeSpan.MaxValue を入力すると、実際には有効期限がまったく設定されず、PERSIST コマンド
が呼び出されます。StackExchange redis クライアントでクラス RedisDatabase.cs を探します。メソッドは

Message GetExpiryMessage( RedisKey キー、CommandFlags フラグ、TimeSpan? 有効期限、ServerEndPoint サーバーから)

https://github.com/StackExchange/StackExchange.Redis
Database.KeyTimeToLive メソッドを呼び出すこともでき、キーに対して 0 が返されます。
また、削除される理由は、Azure キャッシュの設定が原因である可能性があり、maxmemory および evictions ポリシーで設定されている可能性があります。http://redis.io/topics/lru-cache

于 2015-07-02T07:56:00.067 に答える