Stack Exchange redisクライアントをC#にインストールしました。 1つのキーまたはキーの配列しか削除できませんが、プレフィックス付きのキーを削除する方法がわかりません。または、別の解決策として、最初にすべてのキーをパターンで取得してから削除することもできます。しかし、パターンごとにキーを取得する方法もわかりません。
データベース全体をフラッシュする場合を除いて、削除はキーごとに分けられます。
キースキャンはIServer
APIですぐに利用でき、ここでさらに詳しく説明されています: https://stackexchange.github.io/StackExchange.Redis/KeysScan
ただし、通常は本番環境では回避する必要があります。これは、redisの使用目的ではありません。
次のようにして、redisキャッシュからアイテムをバッチ削除できます。 (StackExchange.Redis.StrongName v1.0.488)
foreach (var ep in _muxer.GetEndPoints())
{
var server = _muxer.GetServer(ep);
var keys = server.Keys(database: _redisDatabase, pattern: pattern + "*").ToArray();
_db.KeyDeleteAsync(keys);
}
_muxer
はConnectionMultiplexer
のインスタンスです
要求したパターンで削除することはありませんが、各キーを個別に削除するよりもはるかに高速です。