2016-04-26 9 views
1

Ich benutze Servicestack C# -Treiber zum Verbinden der Redis-Datenbank, die in 6379 ausgeführt wird. Ich möchte alle Schlüssel und ihre Werte aus Redis-Datenbank abrufen (die tatsächlich zwischengespeichert wird). Ich muss zwei Schlüssel und seine Werte in redesdb aktualisieren, ist es möglich, ein Update ohne Verwendung von Liste oder Hashtypen zu machen?Wie bekomme ich alle Schlüssel und ihre Werte aus der Redis-Datenbank in C#?

Ich möchte wissen, wie Sie zahlreiche Schlüssel und Werte hinzufügen sowie viele auf einmal aktualisieren.

Antwort

0

In Bezug auf Redis möchten Sie mehrere aktualisieren, mehrere erhalten und mehrere hinzufügen. Sie können diese Befehle für diesen Zweck verwenden.

Mset - Mehrere Set Mget - Mehrere Get Hmset - Mehrere Set in Hashes. Msetnx - Mehrfachsatz, falls nicht vorhanden.

0

Der effizienteste Weg, um alle Tasten zum Abrufen ist die SCAN API's zu verwenden, zB:

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

Sie können alle Werte mit GetValues() erhalten eine Liste von Werten oder GetValuesMap() zurückzukehren ein Wörterbuch der Schlüssel zurück Werte, zB:

Aber abhängig von der Anzahl der Schlüssel, die Sie haben, möchten Sie sie in Stapeln abrufen.

Ebenso können Sie mehrere Schlüssel und Werte mit SetValues() beispiels eingestellt:

redis.SetValues(allKeysAndValues);