I installed Stack Exchange redis client in C#. I can only delete one key or array of keys but I don't know how to delete keys with prefix. Or another solution can be first get all keys by pattern and then delete them. But I don't know how to get keys by pattern too.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Deletion is separate by key, unless you are flushing the entire database.
Key scanning is readily available on the IServer
API, and is discussed much more here: https://stackexchange.github.io/StackExchange.Redis/KeysScan
However, it should still usually be avoided in production - that isn't the intended use-case for redis.
回答2:
You can do as the following to batch delete items from redis cache. (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
is instance of ConnectionMultiplexer
It does not delete by pattern as you asked but much faster than deleting each key separately.