使用StackExchange.Redis删除Redis Key时找不到Database.KeyDelete方法怎么办
解决StackExchange.Redis找不到KeyDelete方法的方案
问题排查与解决步骤
- 确认安装的是官方Nuget包
StackExchange.Redis,建议升级到2.0及以上稳定版本,非官方包或过旧版本会缺失标准接口。 - 确认代码头部已引入正确命名空间:
using StackExchange.Redis;,未引入命名空间会无法识别IDatabase的相关方法。 - 修正原有代码中的语法错误:连接地址
127.0.0..1多写了一个小数点,参数名大小写不匹配(定义的是大写Key,调用时用了小写key)。
修正后的单Key删除代码
using StackExchange.Redis; // 注意:ConnectionMultiplexer建议全局单例复用,不要每次调用都新建实例,避免连接过多导致性能问题 private static readonly ConnectionMultiplexer _redis = ConnectionMultiplexer.Connect("127.0.0.1:6379"); public void DeleteCacheByKey(string Key) { var db = _redis.GetDatabase(); db.KeyDelete(Key); }
批量删除指定前缀Key的实现(可选)
如果你需要删除所有以特定字符串开头的Key,可使用如下实现:
public void DeleteCacheByKeyPrefix(string prefix) { var server = _redis.GetServer("127.0.0.1:6379"); var db = _redis.GetDatabase(); foreach (var redisKey in server.Keys(pattern: $"{prefix}*")) { db.KeyDelete(redisKey); } }
内容的提问来源于stack exchange,提问作者JianYA
相关产品推荐
相关产品推荐

