2016-04-26 2 views
1

Я использую servicestack C# драйвер для подключения базы данных redis, которая работает в 6379. Я хочу получить (GET/READ) все ключи и их значения из базы данных redis (которая фактически кэшируется). Мне нужно обновить два ключа и его значения в redisdb, возможно ли сделать обновление без использования списка или хэштипов?Как получить, обновить все ключи и их значения из базы данных redis в C#?

Я хочу знать, как добавлять многочисленные ключи и значения, а также обновлять многие за раз.

ответ

0

Что касается Redis, вы хотите несколько обновлений, несколько get и multiple add. Вы можете использовать эти команды для этой цели.

Mset - Multiple Set Mget - Несколько Получить Hmset - Несколько Набор в хэшей. Msetnx - Множественный набор, если не существует.

0

Наиболее эффективный способ, чтобы получить все ключи, чтобы использовать SCAN API's, например:

var allKeys = new List<string>(); 
using (var redis = redisManager.GetClient()) 
{ 
    foreach (var key in redis.ScanAllKeys()) 
    { 
     allKeys.Add(key); 
    } 
} 

Вы можете получить все значения с GetValues() возвращать список значений или GetValuesMap() вернуть словарь ключа значения, например:

var allKeyAndValues = redis.GetValuesMap(allKeys); 

Но в зависимости от количества ключей, которые у вас есть, вы хотите получить их в партиях.

Аналогично можно установить несколько ключей и значений с SetValues() например:

redis.SetValues(allKeysAndValues);