Redis SCARD

Redis Scard



„Redis rinkiniai yra netvarkingi eilučių rinkiniai, kuriuose nėra dublikatų. Jie labai panašūs į „Java HashSets“, „Python“ rinkinius ir kt. Svarbiausia, kad pagrindinės operacijos, pvz., nario pridėjimas, pašalinimas ir patikrinimas, yra labai veiksmingos, nes jos veikia O(1) laiko sudėtingumu.

Rinkinio nariai

Kaip minėta, Redis rinkiniuose yra unikalių eilučių elementų. Jau esamų elementų Redis rinkiniai nepriims ir bus ignoruojami. Be to, viename rinkinyje gali būti iki 4 milijardų unikalių stygų.









„Redis“ rinkinio pobūdis, kai turi unikalius narius, praverčia keliais realaus naudojimo atvejais.



  • Galimybė atlikti standartines rinkinio operacijas, tokias kaip „Union“, „Insection“ ir „Difference“.
  • Unikalių svetainės lankytojų stebėjimas
  • Atstovauti realaus pasaulio esybės santykius

SCARD komanda

Komanda SCARD, trumpinys Set Cardinality, grąžina rinkinio narių skaičių, saugomą tam tikru raktu. Jis veikia pagal O(1) laiko sudėtingumą, o tai reiškia, kad laikas, per kurį SCARD komanda vykdoma, nepriklauso nuo pateikto rinkinio narių skaičiaus. Visada reikia pastovaus laiko.





SCARD komanda turi labai paprastą sintaksę, kaip parodyta toliau.

SCARD set_key

set_key: Redis rinkinio raktas



Ši komanda grąžina sveikojo skaičiaus reikšmę, kuri yra rinkinio narių skaičius.

Naudojimo atvejis – suskaičiuokite unikalius svetainės lankytojus

Tarkime, kad „YummyPizza“ picų įmonė turi svetainę yummypizza.com, kurioje žmonės gali užsisakyti picą internetu. Kad galėtų sekti savo pardavimus ir klientų bazę, jie tvarko Redis duomenų bazę, kurioje kiekvieną mėnesį saugo visus unikalius svetainės lankytojus.

Kai vartotojas apsilanko YummyPizza svetainėje, vartotojo ID turėtų būti įtrauktas į Redis duomenų bazę. Be to, tas pats vartotojas neturėtų būti įtrauktas į duomenų bazę. Taigi ideali duomenų struktūra yra Redis rinkinys, kuriame rinkiniuose saugomi tik unikalūs nariai.

Tarkime, kad svetainėje apsilankė penki vartotojai ir šie nariai yra įtraukti į Redis duomenų bazę, kaip parodyta toliau.

SADD YummyPizza Lankytojai: Spalio mėn. John Mary Raza Stoinis Prince

Kaip ir tikėtasi, buvo grąžintas sveikasis skaičius 5, o tai reiškia, kad penki nariai pridedami prie rinkinio, saugomo raktu ' YummyPizza Lankytojai: spalio mėn.

Dienos pabaigoje įmonės administratoriai turi patikrinti bendrą unikalių svetainės lankytojų skaičių. Taigi, reikia apskaičiuoti rinkinio kardinalumą. Laimei, anksčiau aptarta SCARD komanda praverčia tokio tipo scenarijuje.

Vykdykime komandą SCARD rinkinyje, saugomame klavišu ' YummyPizza Lankytojai: spalio mėn.

scard YummyPizzaLankytojai:spalis

Išvestis yra 5, o tai reiškia, kad nurodytame rinkinyje yra penki unikalūs nariai. Ši komanda vykdoma per greitai. Nesvarbu, ar penki nariai ar 50 000 narių; vykdymo laikas bus pastovus.

Tarkime, kad nurodyto rinkinio rakto Redis duomenų bazėje nėra. Tada išvestis bus 0, kaip parodyta kitame pavyzdyje. Šiuo atveju mes ketiname nurodyti raktą, kurio nėra duomenų bazėje.

scard NonExistingKey

Išvada

Apibendrinant galima pasakyti, kad Redis rinkinys yra idealus kandidatas saugoti unikalias eilutes. Kaip aptarta, svarbiausias dalykas, susijęs su Redis rinkiniu, yra tai, kad dauguma susijusių rinkinio operacijų vykdomi nuolat. SCARD komanda yra viena iš dažniausiai naudojamų rinkinių komandų, skirtų apskaičiuoti bendrą rinkinio narių skaičių, saugomą nurodytu raktu. Nesvarbu, kiek rinkinio narių yra, ši komanda užtrunka nuolat, kol pateikiama išvestis. Kaip parodyta paskutiniame pavyzdyje, jei nustatyto rakto nėra, tada išvestis bus 0.