2016-04-26 42 views
1

我正在使用servicestack C#驅動程序來連接以6379運行的redis數據庫。 我想從redis數據庫(實際上已緩存)檢索(GET/READ)所有密鑰及其值。 我必須在redisdb中更新兩個鍵及其值,是否可以在不使用列表或哈希類型的情況下進行更新?如何從c#中的redis數據庫更新所有密鑰及其值?

我想知道如何添加大量的鍵和值以及一次更新很多。

回答

0

關於Redis,您需要多個更新,多個獲取和多個添加。您可以爲此使用這些命令。

Mset - 多個置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() e.g:

redis.SetValues(allKeysAndValues); 
相關問題