我将 Redis 缓存用于缓存目的(特别是 stackexchange.Redis C# 驱动程序
。想知道是否有任何方法可以在任何时间点获取缓存中可用的所有键。我的意思是类似的我可以在 ASP.NET cache
对象中做的事情(下面的代码示例)
var keys = Cache.GetEnumerator();
while(keys.MoveNext())
{
keys.Key.ToString() // Key
}
Redis documentation talks about KESY command但是 stackexchange.Redis
是否有该命令的实现。
通过 connection.GetDataBase()
实例调试,我没有看到任何方法/属性。
有什么想法吗?
最佳答案
你需要的函数在IServer接口(interface)下,可以通过:
ConnectionMultiplexer m = CreateConnection();
m.GetServer("host").Keys();
请注意,在 2.8 版之前的 redis 服务器将使用您提到的 KEYS 命令,并且在某些情况下可能会非常慢。但是,如果您使用 redis 2.8+ - 它将改用 SCAN 命令,这样性能更好。还要确保您确实需要获得所有 key ,在我的实践中我从来不需要这个。
关于c# - 从 Redis 缓存数据库中获取所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436429/