Redis SCARD

Redis Scard



„Sady Redis jsou neuspořádané kolekce řetězců, které neobsahují žádné duplikáty. Jsou velmi podobné Java HashSets, Python Sets atd. Nejdůležitější je, že základní operace jako přidávání, odebírání a kontrola existence člena jsou vysoce efektivní, protože fungují v časové složitosti O(1).

Členové sady

Jak již bylo zmíněno, sady Redis obsahují jedinečné položky řetězce. Již existující položky nebudou sady Redis akceptovány a budou ignorovány. Navíc jedna jediná sada pojme až 4 miliardy jedinečných strun.









Povaha sady Redis, která drží jedinečné členy, se hodí v několika případech použití v reálném světě.



  • Schopnost provádět standardní operace sady, jako je Union, Intersection a Difference.
  • Sledování unikátních návštěvníků webu
  • Reprezentovat vztahy entit v reálném světě

Příkaz SCARD

Příkaz SCARD, zkratka pro Set Cardinality, vrací počet členů v sadě uložené na daném klíči. Pracuje v časové složitosti O(1), což znamená, že čas, který trvá provedení příkazu SCARD, nezávisí na počtu členů v dané sadě. Vždy to trvá konstantní čas.





Příkaz SCARD má velmi jednoduchou syntaxi, jak je znázorněno níže.

SCARD set_key

set_key: Klíč sady Redis



Tento příkaz vrací celočíselnou hodnotu, což je počet členů v sadě.

Případ použití – Počítejte unikátní návštěvníky webu

Předpokládejme, že společnost nabízející pizzu „YummyPizza“ provozuje web s názvem yummypizza.com, kde si lidé mohou objednat pizzu online. Aby mohli sledovat své prodeje a zákaznickou základnu, udržují databázi Redis, do které každý měsíc ukládají všechny unikátní návštěvníky webu.

Kdykoli uživatel navštíví web YummyPizza, mělo by být jeho ID přidáno do databáze Redis. Stejný uživatel by také neměl být přidán do databáze. Ideální datovou strukturou je tedy sada Redis, kde sady ukládají pouze jedinečné členy.

Předpokládejme, že web navštívilo pět uživatelů a tito členové jsou přidáni do databáze Redis, jak je znázorněno níže.

SADD YummyPizzaNávštěvníci:Říjen John Mary Raza Stoinis Prince

Jak se očekávalo, bylo vráceno celé číslo 5, což znamená, že pět členů je přidáno do sady uložené v klíči „ YummyPizzaNávštěvníci:říjen.

Na konci dne musí administrátoři společnosti zkontrolovat celkový počet unikátních návštěvníků webu. Je tedy třeba vypočítat mohutnost sady. Naštěstí se v tomto typu scénáře hodí dříve diskutovaný příkaz SCARD.

Proveďme příkaz SCARD na sadě uložené v klíči ' YummyPizzaNávštěvníci:říjen.

scard YummyPizzaNávštěvníci:říjen

Výstup je 5, což znamená, že v zadané sadě je pět jedinečných členů. Tento příkaz se provádí příliš rychle. Nezáleží na pěti členech nebo 50 000 členech; doba provádění bude konstantní.

Předpokládejme, že zadaný klíč sady v databázi Redis neexistuje. Potom bude výstup 0, jak ukazuje následující příklad. V tomto případě zadáme klíč, který není v databázi.

skartovat NonExistingKey

Závěr

Abychom to shrnuli, Redis set je ideálním kandidátem pro ukládání unikátních řetězců. Jak již bylo zmíněno, nejdůležitější věcí na sadě Redis je to, že většina operací souvisejících s sadami trvá konstantní čas. Příkaz SCARD je jedním z nejpoužívanějších příkazů sady pro výpočet celkového počtu členů sady pro danou sadu uložených na zadaném klíči. Bez ohledu na to, kolik členů sady je k dispozici, tento příkaz potřebuje k poskytnutí výstupu konstantní čas. Jak je znázorněno v posledním příkladu, pokud klíč set neexistuje, výstup bude 0.