Požadavky: Některá data je třeba exportovat z cache Redis pomocí divokých karet, aby se vyřešily problémy. NET/C# používá klienta StackExchange.Redis ke manipulaci s cache Redis a exportu jako txt souboru na lokální disk. Principem je filtrovat všechny klíče pomocí příkazu SCAN a poté dotazovat na hodnotu každého klíče.
Příkaz KEYS v Redis vrací všechny odpovídající klíče najednou, když je v Redis mnoho klíčů, představuje skryté nebezpečí pro spotřebu paměti a server Redis, a u verzí Redis 2.8 a novějších nám poskytuje lepší příkaz pro procházení kláves SCAN.
SCAN vrací pouze malý počet prvků při každém vykonání, takže jej lze použít v produkčním prostředí bez problémů, které by mohly blokovat server, jako jsou příkazy KEYS nebo SMEMBERS.
Příkaz SCAN je iterátor založený na kurzoru. To znamená, že pokaždé, když je příkaz vyvolán, musí použít kurzor vrácený předchozím voláním jako argument kurzoru pro další volání, aby mohl pokračovat v předchozím iteračním procesu
Když je parametr kurzoru (tj. kurzor) příkazu SCAN nastaven na 0, server spustí novou iteraci a když vrátí uživateli kurzor s hodnotou 0, iterace končí.
Přezkoumání:
Nejprve vložíme do Redis 100 000 prutůUser:GUID 格式Data znázorněná na obrázku níže:
.NET/C# používá StackExchange.Redis k fuzzly dotazování dat "User:*" a jejich výstupu na váš lokální disk jako txt soubor, zdrojový kód je následující:
Vizualizace jsou následující:
(Konec)
|