Redis SCARD

Redis Scard



“Redis skupovi su neuređene zbirke nizova koji ne sadrže duplikate. Oni su vrlo slični Java HashSetovima, Python skupovima, itd. Što je najvažnije, temeljne operacije poput dodavanja, uklanjanja i provjere postojanja člana vrlo su učinkovite jer rade u O(1) vremenskoj složenosti.'

Članovi skupa

Kao što je spomenuto, Redis skupovi sadrže jedinstvene stavke niza. Redis skupovi neće prihvatiti postojeće stavke i zanemarit će ih. Nadalje, jedan skup može sadržavati do 4 milijarde jedinstvenih nizova.









Priroda skupa Redis koja sadrži jedinstvene članove korisna je u nekoliko slučajeva korištenja u stvarnom svijetu.



  • Sposobnost izvođenja standardnih skupnih operacija kao što su Union, Intersection i Difference.
  • Praćenje jedinstvenih posjetitelja web stranice
  • Predstavljaju odnose entiteta u stvarnom svijetu

Naredba SCARD

Naredba SCARD, skraćenica za Set Cardinality, vraća broj članova u skupu pohranjenom na danom ključu. Djeluje u vremenskoj složenosti O(1), što znači da vrijeme koje SCARD naredba treba da se izvrši ne ovisi o broju članova u danom skupu. Uvijek je potrebno stalno vrijeme.





Naredba SCARD ima vrlo jednostavnu sintaksu, kao što je prikazano u nastavku.

SCARD set_key

set_key: Ključ Redis seta



Ova naredba vraća cjelobrojnu vrijednost koja je broj članova u skupu.

Slučaj upotrebe – izbrojite jedinstvene posjetitelje web stranice

Pretpostavimo da tvrtka za proizvodnju pizze 'YummyPizza' održava web stranicu pod nazivom yummypizza.com gdje ljudi mogu naručiti pizzu online. Kako bi pratili svoju prodaju i bazu kupaca, održavaju Redis bazu podataka za pohranu svih jedinstvenih posjetitelja web stranice svakog mjeseca.

Kad god korisnik posjeti web mjesto YummyPizza, korisnički ID treba dodati u Redis bazu podataka. Također, isti korisnik ne bi trebao biti dodan u bazu podataka. Dakle, idealna struktura podataka je Redis skup, gdje skupovi pohranjuju samo jedinstvene članove.

Pretpostavimo da je pet korisnika posjetilo web mjesto i da su ti članovi dodani Redis bazi podataka, kao što je prikazano u nastavku.

SADD YummyPizzaPosjetitelji: listopad John Mary Raza Stoinis Prince

Kao što se očekivalo, vraćen je cijeli broj 5, što znači da je pet članova dodano skupu pohranjenom na ključu ' YummyPizzaPosjetitelji: listopad.

Na kraju dana, administratori tvrtke moraju provjeriti ukupan broj jedinstvenih posjetitelja web stranice. Dakle, potrebno je izračunati kardinalitet skupa. Srećom, prethodno razmatrana naredba SCARD dobro dolazi u ovoj vrsti scenarija.

Izvršimo naredbu SCARD na skupu pohranjenom na ključu ' YummyPizzaPosjetitelji: listopad.

scard UkusnaPizzaPosjetitelji:listopad

Izlaz je 5, što znači da je pet jedinstvenih članova u navedenom skupu. Ova naredba se izvršava prebrzo. Nije važno pet članova ili 50 000 članova; vrijeme izvršenja će biti konstantno.

Pretpostavimo da navedeni skupni ključ ne postoji u Redis bazi podataka. Tada će izlaz biti 0, kao što je prikazano u sljedećem primjeru. U ovom slučaju, navest ćemo ključ koji nije u bazi podataka.

scard NonExistingKey

Zaključak

Ukratko, Redis set je idealan kandidat za pohranu jedinstvenih nizova. Kao što smo spomenuli, najvažnija stvar u vezi s Redis skupom jest ta da je većini pridruženih operacija skupa potrebno stalno vrijeme za izvršenje. Naredba SCARD jedna je od najčešće korištenih naredbi skupa za izračunavanje ukupnog broja članova skupa za dani skup pohranjen na određenom ključu. Bez obzira na to koliko je članova skupa dostupno, ovoj naredbi potrebno je konstantno vrijeme da pruži izlaz. Kao što je prikazano u posljednjem primjeru, ako set ključ ne postoji, tada će izlaz biti 0.