Redis Stack Exchange如何通过模式删除或获取密钥

我在C#中安装了Stack Exchange redis客户端。 我只能删除一个键或一组键,但我不知道如何删除带前缀的键。 或者另一种解决方案可以是先按模式获取所有密钥然后删除它们。 但我不知道如何按模式获取密钥。

删除是按键分开的,除非您正在刷新整个数据库。

IServer API上可以轻松获得密钥扫描,这里将IServer更多讨论: https : //github.com/StackExchange/StackExchange.Redis/blob/master/Docs/KeysScan.md

但是,在生产中通常应该避免 – 这不是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); } 

_muxerConnectionMultiplexer实例

它不会像您要求的那样按模式删除,但比单独删除每个键要快得多。