Redis SCARD

Redis Scard



“Redis komplekti ir nesakārtotas virkņu kolekcijas, kurās nav dublikātu. Tie ir ļoti līdzīgi Java HashSets, Python komplektiem utt. Vissvarīgākais ir tas, ka pamata darbības, piemēram, dalībnieka pievienošana, noņemšana un pārbaude, ir ļoti efektīvas, jo tās darbojas O(1) laika sarežģītībā.

Komplekta dalībnieki

Kā minēts, Redis komplektos ir unikāli virkņu vienumi. Redis komplekti nepieņems jau esošos vienumus un tiks ignorēti. Turklāt vienā komplektā var būt līdz pat 4 miljardiem unikālu stīgu.









Redis komplekta būtība, ka tajā ir unikāli dalībnieki, noder vairākos reālās lietošanas gadījumos.



  • Spēja veikt standarta komplekta darbības, piemēram, savienība, krustojums un atšķirība.
  • Vietnes unikālo apmeklētāju izsekošana
  • Pārstāvēt reālās pasaules entītiju attiecības

SCARD komanda

Komanda SCARD, kas ir saīsinājums no Set Cardinality, atgriež dalībnieku skaitu komplektā, kas saglabāts ar doto taustiņu. Tas darbojas O(1) laika sarežģītībā, kas nozīmē, ka laiks, kas nepieciešams komandas SCARD izpildei, nav atkarīgs no dalībnieku skaita dotajā komplektā. Tas vienmēr prasa pastāvīgu laiku.





Komandai SCARD ir ļoti vienkārša sintakse, kā parādīts tālāk.

SCARD set_key

set_key: Redis komplekta atslēga



Šī komanda atgriež vesela skaitļa vērtību, kas ir kopas dalībnieku skaits.

Lietošanas gadījums — uzskaitiet unikālos vietnes apmeklētājus

Pieņemsim, ka picu uzņēmums “YummyPizza” uztur vietni yummypizza.com, kurā cilvēki var pasūtīt picu tiešsaistē. Lai sekotu līdzi saviem pārdošanas apjomiem un klientu bāzei, viņi uztur Redis datu bāzi, lai katru mēnesi saglabātu visus unikālos vietnes apmeklētājus.

Ikreiz, kad lietotājs apmeklē vietni YummyPizza, lietotāja ID ir jāpievieno Redis datubāzei. Turklāt to pašu lietotāju nevajadzētu pievienot arī datu bāzei. Tātad ideāla datu struktūra ir komplekts Redis, kur kopās tiek glabāti tikai unikālie dalībnieki.

Pieņemsim, ka vietni ir apmeklējuši pieci lietotāji un šie dalībnieki ir pievienoti Redis datubāzei, kā parādīts tālāk.

SADD YummyPizzaApmeklētāji: oktobris Džons Mērija Raza Stoinis princis

Kā gaidīts, ir atgriezts vesels skaitlis 5, kas nozīmē, ka pieci dalībnieki tiek pievienoti kopai, kas saglabāta ar taustiņu ' YummyPizzaApmeklētāji:oktobris.

Dienas beigās uzņēmuma administratoriem ir jāpārbauda kopējais vietnes unikālo apmeklētāju skaits. Tātad, ir jāaprēķina Set kardinalitāte. Par laimi, šāda veida scenārijā noder iepriekš apspriestā SCARD komanda.

Izpildīsim komandu SCARD komplektā, kas saglabāts ar taustiņu ' YummyPizzaApmeklētāji:oktobris.

scard YummyPizzaApmeklētāji:oktobris

Izvade ir 5, kas nozīmē, ka norādītajā komplektā ir pieci unikāli dalībnieki. Šī komanda tiek izpildīta pārāk ātri. Nav nozīmes pieciem vai 50 000 dalībniekiem; izpildes laiks būs nemainīgs.

Pieņemsim, ka norādītā komplekta atslēga neeksistē Redis datu bāzē. Tad izvade būs 0, kā parādīts nākamajā piemērā. Šajā gadījumā mēs norādīsim atslēgu, kas nav datu bāzē.

scard NonExistingKey

Secinājums

Rezumējot, Redis komplekts ir ideāls kandidāts unikālu virkņu glabāšanai. Kā minēts, vissvarīgākā lieta Redis komplektā ir tā, ka lielākā daļa saistīto kopas darbību izpilda pastāvīgu laiku. Komanda SCARD ir viena no visbiežāk izmantotajām kopas komandām, lai aprēķinātu kopas dalībnieku kopskaitu konkrētai kopai, kas glabājas pie noteiktas atslēgas. Neatkarīgi no tā, cik kopas dalībnieku ir pieejami, šai komandai ir nepieciešams pastāvīgs laiks, lai nodrošinātu izvadi. Kā parādīts pēdējā piemērā, ja iestatītā atslēga nepastāv, izvade būs 0.