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

时间:2014-10-21 14:11:15

标签: c# redis stackexchange.redis

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

2 个答案:

答案 0 :(得分:14)

您可以执行以下操作批量删除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

的实例

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

答案 1 :(得分:7)

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

IServer API上提供了密钥扫描功能,此处将对此进行更详细的讨论:https://stackexchange.github.io/StackExchange.Redis/KeysScan

但是,在生产中通常应该避免使用 - 这不是redis的预期用例。

相关问题