使用C#在Redis缓存中扫描缓存键

时间:2015-09-28 12:55:50

标签: c# caching redis invalidation stackexchange.redis

我在我的项目中使用Redis Cache。现在有一种情况是缓存是动态生成的,如“KeyPrefix”+ i i是动态值

现在我要删除所有具有前缀“KeyPrefix”

的键

在我的代码中它是如何可行的我只能删除匹配的密钥。但我需要删除包含一些前缀的所有密钥。

  IDatabase cache = RedisDistributedCacheManager.GetDatabase();
                cache.KeyDelete(cacheKey);

由于 Dalvir

1 个答案:

答案 0 :(得分:1)

Redis键扫描以服务器为目标,而不是单个数据库。因此,您可以获取服务器变量,然后使用Keys方法获取所有需要的密钥:

var server = conn.GetServer(someServer);    
server.Keys(pattern: "*foo*"))

首先检查文档: https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/KeysScan.md