如何在C#中从Redis缓存获取所有键值?

3

我有一个Redis缓存,我已经设置了一些键值对,现在需要获取所有键和它们的值。似乎没有直接的方法可以做到这一点。

我只看到了一个StringGet(string key) 方法,该方法需要一个键作为参数。但是没有方法可以获取所有键。

编辑:

我尝试了下面的代码,但第3行出现异常。

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
IDatabase db = redis.GetDatabase();

var keys = redis.GetServer("localhost").Keys();

string[] keysArr = keys.Select(key => (string)key).ToArray();

foreach (string key in keysArr)
{
    Console.Write(db.StringGet(key));
}

异常:

指定的端点未定义

2个回答

2
你可以调用 Keys 方法来获取所有键,记得在 Connect 方法中传递 allowAdmin=true
using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379,allowAdmin=true"))
        {
            IDatabase db = redis.GetDatabase();

            var keys = redis.GetServer("localhost", 6379).Keys();

            string[] keysArr = keys.Select(key => (string)key).ToArray();

            foreach (string key in keysArr)
            {
                Console.WriteLine(db.StringGet(key));
            }
        }

0
你可以试试这种方法
IServer server = Connection.GetServer("yourcache.redis.cache.windows....", 6380);
foreach (var key in server.Keys())
{
   Console.WriteLine(key);
}

我已经尝试过这段代码了,但是它出现了异常。指定的端点未定义。 - undefined
你能解释一下代码中发生了什么,还是你只是试一试? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接