指定した有効期限が過ぎても、キャッシュ全体をクリア/フラッシュする方法があるかどうかを知りたい。どうすればC#でこれを達成できますか?ClearExchangeExchange.Redis設定可能な有効期限を持つキャッシュ
C#
// library
using StackExchange.Redis;
public class RedisCacheService
{
// Fields
ConnectionMultiplexer _Redis = null;
IDatabase _RedisDB = null;
// ctor
public RedisCacheService(String redisConnectionString) // , DateTime ExpiryDate ? - Extracted from config
{
try
{
if (String.IsNullOrEmpty(redisConnectionString))
{
throw new Exception("The 'redisConnectionString' parameter is unassigned");
}
this._Redis = ConnectionMultiplexer.Connect(redisConString);
if (_Redis == null)
{
throw new Exception("_Redis object not initialized");
}
this._RedisDB = _Redis.GetDatabase();
// I need to set some sort of expiry config here in the constructor.
// The redisConnectionString is passed through when an instance of this class is created in the host startup and
// the redisConnectionString is extracted from the config.
}
catch (Exception e)
{
throw new Exception(e);
}
}
}
私は、私が実際にオブジェクトをキャッシュに移入するとき、私は有効期限に渡すことができますが、私はむしろ、グローバル・キャッシュ明確な解決策を望んで同様のソリューションを見ました。
ご意見やご提案があれば幸いです。
イベントは「キースペースイベント」について知りませんでした。この素晴らしいスタッフのおかげで私は感謝しています! – ThatAwesomeCoder
np;)の唯一の欠点は、Redisサーバーで明示的に有効にする必要があることです。しかし、設定やコマンドライン経由で行うことができます。 'CONFIG SET notify-keyspace-events Exe'が必要だと思います – MichaC