Redis SKARD

Redis Skard



Redise komplektid on järjestamata stringide kogumid, mis ei sisalda duplikaate. Need on väga sarnased Java räsikomplektidega, Pythoni komplektidega jne. Kõige tähtsam on see, et põhitoimingud, nagu liikme lisamine, eemaldamine ja olemasolu kontrollimine, on väga tõhusad, kuna need töötavad O(1) aja keerukuses.

Komplekti liikmed

Nagu mainitud, sisaldavad Redise komplektid ainulaadseid stringielemente. Redise komplektid ei aktsepteeri juba olemasolevaid üksusi ja neid ignoreeritakse. Lisaks võib ühes komplektis olla kuni 4 miljardit unikaalset stringi.









Redise komplekti unikaalsete liikmete hoidmine on kasulik mitmel reaalsel kasutusel.



  • Võimalus teha standardseid komplektioperatsioone, nagu liit, ristmik ja erinevus.
  • Veebisaidi unikaalsete külastajate jälgimine
  • Esitage reaalse maailma olemisuhteid

SCARDi käsk

Käsk SCARD, lühend sõnast Set Cardinality, tagastab antud võtmele salvestatud komplekti liikmete arvu. See töötab O(1) ajalise keerukusega, mis tähendab, et SCARD-käsu täitmiseks kuluv aeg ei sõltu antud komplekti liikmete arvust. See võtab alati pidevalt aega.





Käsul SCARD on väga lihtne süntaks, nagu on näidatud järgmises.

SCARD set_key

set_key: Redise komplekti võti



See käsk tagastab täisarvu väärtuse, mis on komplekti kuuluvate liikmete arv.

Kasutusjuhtum – loendage veebisaidi unikaalseid külastajaid

Oletame, et pitsafirma 'NamiPizza' haldab veebisaiti yummypizza.com, kus inimesed saavad pitsat veebist tellida. Oma müügi ja kliendibaasi jälgimiseks peavad nad Redise andmebaasi, et salvestada iga kuu kõik veebisaidi unikaalsed külastajad.

Iga kord, kui kasutaja külastab YummyPizza veebisaiti, tuleks kasutaja ID lisada Redise andmebaasi. Samuti ei tohiks sama kasutajat andmebaasi lisada. Seega on ideaalne andmestruktuur Redise komplekt, kus komplektid salvestavad ainult unikaalseid liikmeid.

Oletame, et veebisaiti on külastanud viis kasutajat ja need liikmed lisatakse Redise andmebaasi, nagu allpool näidatud.

SADD YummyPizzaKülastajad: oktoober John Mary Raza Stoinis Prince

Nagu oodatud, on täisarv 5 tagastatud, mis tähendab, et viis liiget lisatakse komplekti, mis on salvestatud võtmega ' NamiPizzaKülastajad:oktoober.

Päeva lõpus peavad ettevõtte administraatorid kontrollima veebisaidi unikaalsete külastajate koguarvu. Niisiis, komplekti kardinaalsus tuleb välja arvutada. Õnneks on varem käsitletud SCARD-käsk seda tüüpi stsenaariumi puhul kasulik.

Käivitame käsu SCARD komplektis, mis on salvestatud klahvile ' NamiPizzaKülastajad:oktoober.

scard NamiPizzaKülastajad:oktoober

Väljund on 5, mis tähendab, et määratud komplektis on viis unikaalset liiget. See käsk täidetakse liiga kiiresti. Viis liiget või 50 000 liiget pole oluline; täitmisaeg on konstantne.

Oletame, et määratud komplekti võtit Redise andmebaasis pole. Seejärel on väljund 0, nagu on näidatud järgmises näites. Sel juhul määrame võtme, mida andmebaasis pole.

scard NonExistingKey

Järeldus

Kokkuvõtteks võib öelda, et Redise komplekt on ideaalne kandidaat ainulaadsete stringide salvestamiseks. Nagu arutatud, on Redise komplekti puhul kõige olulisem see, et enamiku seotud komplektitoimingute täitmiseks kulub pidevalt aega. SCARD-käsk on üks enimkasutatavaid komplektikäske, et arvutada kindlaks määratud võtmele salvestatud komplekti liikmete koguarv. Olenemata sellest, kui palju komplekti liikmeid on saadaval, võtab see käsk väljundi esitamiseks pidevalt aega. Nagu on näidatud viimases näites, kui seadistusklahvi pole, on väljund 0.