2016-04-26 15 views
1

6379で動作するredisデータベースを接続するためにservicestack C#ドライバを使用しています。 redisデータベース(実際にキャッシュされている)からすべてのキーとその値を取得(GET/READ)します。 redisdbで2つのキーとその値を更新する必要があります。リストやハッシュタイプを使用せずに更新することは可能ですか?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); 
    } 
} 

あなたはキーの辞書を返すために値やGetValuesMap()のリストを返すためにGetValues()ですべての値を取得することができます値:たとえば、

var allKeyAndValues = redis.GetValuesMap(allKeys); 

しかし、キーの数によっては、それらをバッチでフェッチしたいことがあります。

同様に、あなたはSetValues()例えばで複数のキーと値を設定することができます。

redis.SetValues(allKeysAndValues); 
関連する問題