Zahteve: Nekatere podatke je treba izvoziti iz Redis predpomnilnika z nadomestnimi karticami za odpravljanje težav. NET/C# uporablja odjemalca StackExchange.Redis za manipulacijo predpomnilnika Redis in izvoz kot txt datoteko na lokalni disk. Načelo je, da se vse tipke filtrirajo preko ukaza SCAN in nato poizvedujejo po vrednosti vsakega ključa.
Ukaz KEYS v Redisu vrne vse ujemajoče se tipke hkrati; ko je v Redisu veliko ključev, predstavlja skrito nevarnost za porabo pomnilnika in strežnik Redis, za različice Redis 2.8 in novejše pa nam omogoča boljši ukaz za prečkanje tipk SCAN.
SCAN vrne le majhno število elementov na izvajanje, zato ga je mogoče uporabljati v produkcijskih okoljih brez težav, ki bi lahko blokirale strežnik, kot so ukazi KEYS ali SMEMBERS.
Ukaz SCAN je iterator, ki temelji na kazalcu. To pomeni, da mora vsakič, ko je ukaz poklican, uporabiti kazalec, ki ga je vrnil prejšnji klic, kot argument kazalca za naslednji klic, da se nadaljuje prejšnji postopek iteracije
Ko je parameter kazalca (tj. kazalec) ukaza SCAN nastavljen na 0, strežnik začne novo iteracijo, in ko uporabniku vrne kazalec z vrednostjo 0, je iteracija končana.
Pregled:
Najprej vstavimo 100.000 črtic v RedisUser:GUID 格式Podatki, prikazani na spodnji sliki:
.NET/C# uporablja StackExchange.Redis za nejasno poizvedovanje podatkov "User:*" in njihovo izpisovanje na lokalni disk kot txt datoteko, izvorna koda je naslednja:
Upodobitve so naslednje:
(Konec)
|