sql >> Database teknologi >  >> NoSQL >> Redis

Redis scanning overspringsnøgler

Ja! Det er fordi SCAN fungerer på den måde, citeret fra Redis dokumentation:

Selvom blokeringskommandoer som SMEMBERS er i stand til at levere alle de elementer, der er en del af et sæt på et givet tidspunkt, tilbyder SCAN-familien af ​​kommandoer kun begrænsede garantier om de returnerede elementer, da samlingen, som vi trinvist itererer, kan ændre sig under iterationsprocessen.

Men fordi SCAN har meget lidt tilstand tilknyttet (kun markøren), har den følgende ulemper:Et givet element kan returneres flere gange. Det er op til applikationen at håndtere tilfældet med duplikerede elementer , for eksempel kun at bruge de returnerede elementer for at udføre operationer, der er sikre, når de genanvendes flere gange.

Så du vil måske bruge ønsker at bruge array_unique($keys) efter foreach .

For at forstå, hvorfor iterationen fungerer på den måde, er det bedste at læse denne del af Redis-dokumentationen .




  1. Hvordan fjerner du dubletter baseret på en nøgle i Mongodb?

  2. Eksport af et mongoose-databasemodul

  3. Redis datastrukturdesign til sortering af tidsbaserede værdier

  4. Hvordan grupperes dato kvartalsvis?