Как получить все значения ключей из Redis Cache на C #?

У меня есть кеш 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));
}

Исключение:

указанная конечная точка не определена


person vivek nuna    schedule 13.12.2019    source источник


Ответы (2)


Вы можете вызвать метод 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));
            }
        }
person vivek nuna    schedule 16.12.2019

Вы можете попробовать этот способ

IServer server = Connection.GetServer("yourcache.redis.cache.windows....", 6380);
foreach (var key in server.Keys())
{
   Console.WriteLine(key);
}
person Nguyễn Văn Phong    schedule 13.12.2019
comment
Я уже пробовал этот код. это дает исключение. указанная конечная точка не определена - person vivek nuna; 13.12.2019
comment
не могли бы вы объяснить, что происходит в коде, или вы просто пытаетесь - person vivek nuna; 13.12.2019