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

本文关键字:删除 获取 密钥 模式 何按 Stack Exchange Redis | 更新日期: 2023-09-27 18:27:16

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

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

您可以执行以下操作从redis缓存中批量删除项目。(StackExchange.Redis.StrongName v1.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 的实例

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

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

密钥扫描在IServer API上很容易获得,本文将对此进行更多讨论:https://stackexchange.github.io/StackExchange.Redis/KeysScan

然而,在生产中通常还是应该避免它——这不是redis的预期用例。