Anforderungen: Einige Daten müssen über Wildcards aus dem Redis-Cache exportiert werden, um Probleme zu beheben. NET/C# verwendet den StackExchange.Redis-Client, um den Redis-Cache zu bearbeiten und als Textdatei auf die lokale Festplatte zu exportieren. Das Prinzip besteht darin, alle Schlüssel durch den SCAN-Befehl herauszufiltern und dann den Wert jedes Schlüssels abzufragen.
Der KEYS-Befehl in Redis gibt alle passenden Schlüssel gleichzeitig zurück; wenn viele Schlüssel in Redis vorhanden sind, ist dies eine versteckte Gefahr für den Speicherverbrauch und den Redis-Server, und für Redis 2.8 und höher Versionen bietet er uns einen besseren Befehl, um die Schlüssel SCAN zu durchqueren.
SCAN gibt pro Ausführung nur eine kleine Anzahl von Elementen zurück, sodass es in Produktionsumgebungen ohne die Probleme verwendet werden kann, die den Server blockieren könnten, wie die KEYS- oder SMEMBERS-Befehle.
Der SCAN-Befehl ist ein cursorbasierter Iterator. Das bedeutet, dass jedes Mal, wenn ein Befehl aufgerufen wird, der vom vorherigen Aufruf zurückgegebene Cursor als Cursorargument für den nächsten Aufruf verwendet werden muss, um den vorherigen Iterationsprozess fortzusetzen
Wenn der Cursorparameter (d. h. Cursor) des SCAN-Befehls auf 0 gesetzt ist, startet der Server eine neue Iteration, und wenn der Server dem Benutzer einen Cursor mit dem Wert 0 zurückgibt, ist die Iteration beendet.
Rezension:
Zuerst legen wir 100.000 Balken in Redis einUser:GUID 格式Daten, wie in der untenstehenden Abbildung dargestellt:
.NET/C# verwendet StackExchange.Redis, um die "User:*"-Daten unscharf abzufragen und sie als Textdatei auf Ihre lokale Festplatte auszugeben; der Quellcode ist wie folgt:
Die Darstellungen sind wie folgt:
(Ende)
|