Redis SCARD

Redis Scard



»Nabori Redis so neurejene zbirke nizov, ki ne vsebujejo dvojnikov. Ti so zelo podobni Java HashSets, Python Sets itd. Najpomembneje je, da so temeljne operacije, kot so dodajanje, odstranjevanje in preverjanje obstoja člana, zelo učinkovite, ker delujejo v časovni kompleksnosti O(1).«

Člani niza

Kot že omenjeno, nabori Redis vsebujejo edinstvene elemente niza. Nabori Redis ne bodo sprejeli že obstoječih elementov in bodo prezrti. Poleg tega lahko en sam niz vsebuje do 4 milijarde edinstvenih nizov.









Narava nabora Redis, ki vsebuje edinstvene člane, pride prav v več primerih uporabe v resničnem svetu.



  • Sposobnost izvajanja operacij standardnega niza, kot so Union, Intersection in Difference.
  • Sledenje edinstvenim obiskovalcem spletne strani
  • Predstavljajo relacije entitet v resničnem svetu

Ukaz SCARD

Ukaz SCARD, okrajšava za Set Cardinality, vrne število članov v nizu, ki je shranjen pri danem ključu. Deluje v časovni kompleksnosti O(1), kar pomeni, da čas, ki ga potrebuje ukaz SCARD za izvedbo, ni odvisen od števila članov v danem nizu. Vedno traja konstanten čas.





Ukaz SCARD ima zelo preprosto sintakso, kot je prikazano v nadaljevanju.

SCARD set_key

set_key: Ključ kompleta Redis



Ta ukaz vrne celoštevilsko vrednost, ki je število članov v nizu.

Primer uporabe – preštejte edinstvene obiskovalce spletnega mesta

Predpostavimo, da picerijska družba »YummyPizza« vzdržuje spletno mesto z imenom yummypizza.com, kjer lahko ljudje naročijo pico prek spleta. Da bi spremljali svojo prodajo in bazo strank, vzdržujejo zbirko podatkov Redis za shranjevanje vseh edinstvenih obiskovalcev spletnega mesta vsak mesec.

Kadarkoli uporabnik obišče spletno mesto YummyPizza, mora biti ID uporabnika dodan v zbirko podatkov Redis. Prav tako isti uporabnik ne bi smel biti dodan tudi v bazo podatkov. Torej je idealna podatkovna struktura nabor Redis, kjer nabori shranjujejo samo edinstvene člane.

Predpostavimo, da je pet uporabnikov obiskalo spletno stran in ti člani so dodani v bazo podatkov Redis, kot je prikazano v nadaljevanju.

SADD YummyPizzaVisitors: Oktober John Mary Raza Stoinis Prince

Kot je bilo pričakovano, je bilo vrnjeno celo število 5, kar pomeni, da je pet članov dodanih v niz, shranjen pri ključu ' Okusna pica Obiskovalci: oktober.

Na koncu dneva morajo skrbniki podjetja preveriti skupno število edinstvenih obiskovalcev spletnega mesta. Torej je treba izračunati kardinalnost nabora. Na srečo prej obravnavani ukaz SCARD pride prav v tej vrsti scenarija.

Izvedimo ukaz SCARD na nizu, shranjenem na ključu ' Okusna pica Obiskovalci: oktober.

scard YummyPizzaObiskovalci: oktober

Izhod je 5, kar pomeni, da je v podanem nizu pet edinstvenih članov. Ta ukaz se izvede prehitro. Ni pomembno pet članov ali 50.000 članov; čas izvedbe bo konstanten.

Predpostavimo, da navedeni nastavljeni ključ ne obstaja v bazi podatkov Redis. Nato bo rezultat 0, kot je prikazano v naslednjem primeru. V tem primeru bomo podali ključ, ki ga ni v bazi podatkov.

scard NonExistingKey

Zaključek

Če povzamemo, Redis set je idealen kandidat za shranjevanje edinstvenih nizov. Kot smo že omenili, je najpomembnejša stvar pri naboru Redis ta, da večina povezanih operacij nabora potrebuje konstanten čas za izvedbo. Ukaz SCARD je eden najpogosteje uporabljenih ukazov niza za izračun skupnega števila članov niza za dani niz, shranjen na določenem ključu. Ne glede na to, koliko članov niza je na voljo, ta ukaz potrebuje konstanten čas, da zagotovi izhod. Kot je prikazano v zadnjem primeru, če nastavljeni ključ ne obstaja, bo rezultat 0.