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

时间:2019-12-13 13:18:09

标签: c# redis stackexchange.redis

我有redis缓存,我在其中设置了几个键,现在我需要获取所有键及其值。似乎没有直接的方法可以做到这一点。

我只能看到将密钥作为参数的StringGet(string key)方法。但是那里没有所有键的方法

编辑:

我已经绑定了以下代码,但在第三行给出了例外。

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 个答案:

答案 0 :(得分:0)

您可以尝试这种方式

IServer server = Connection.GetServer("yourcache.redis.cache.windows....", 6380);
foreach (var key in server.Keys())
{
   Console.WriteLine(key);
}

答案 1 :(得分:0)

您可以调用Keys方法来获取所有密钥,请记住您需要在allowAdmin=true"方法中传递Connect

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));
            }
        }
相关问题