Redis Stack Exchange how to delete or get keys by pattern

后端 未结 2 631
南旧
南旧 2020-12-20 12:46

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

相关标签:
2条回答
  • 2020-12-20 13:31

    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.

    0 讨论(0)
  • 2020-12-20 13:33

    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.

    0 讨论(0)
提交回复
热议问题