Redis SCARD

Redis Scard



„Zestawy Redis to nieuporządkowane zbiory łańcuchów, które nie zawierają duplikatów. Są one bardzo podobne do Java HashSets, Python Sets itp. Co najważniejsze, podstawowe operacje, takie jak dodawanie, usuwanie i sprawdzanie istnienia elementu, są bardzo wydajne, ponieważ działają w złożoności czasowej O(1).

Członkowie zestawu

Jak wspomniano, zestawy Redis zawierają unikalne elementy łańcuchowe. Istniejące już pozycje nie będą akceptowane przez zestawy Redis i będą ignorowane. Co więcej, jeden zestaw może pomieścić do 4 miliardów unikalnych ciągów.









Charakter zestawu Redis polegający na przechowywaniu unikalnych elementów przydaje się w kilku rzeczywistych przypadkach użycia.



  • Możliwość wykonywania standardowych operacji na zbiorach, takich jak Suma, Przecięcie i Różnica.
  • Śledzenie unikalnych użytkowników witryny
  • Reprezentuj relacje encji w świecie rzeczywistym

Dowództwo SCARD

Polecenie SCARD, skrót od Set Cardinality, zwraca liczbę elementów w zestawie przechowywanym pod danym kluczem. Działa w złożoności czasowej O(1), co oznacza, że ​​czas wykonania polecenia SCARD nie zależy od liczby elementów w danym zbiorze. To zawsze zajmuje stały czas.





Polecenie SCARD ma bardzo prostą składnię, jak pokazano poniżej.

SCARD set_key

zestaw_kluczy: Klucz zestawu Redis



To polecenie zwraca wartość całkowitą, która jest liczbą elementów w zestawie.

Przypadek użycia – policz unikalnych odwiedzających witrynę

Załóżmy, że firma zajmująca się pizzą „YummyPizza” prowadzi stronę internetową o nazwie yummypizza.com, na której ludzie mogą zamawiać pizzę online. Aby śledzić swoją sprzedaż i bazę klientów, utrzymują bazę danych Redis, w której co miesiąc przechowują wszystkich unikalnych użytkowników witryny.

Za każdym razem, gdy użytkownik odwiedza witrynę YummyPizza, identyfikator użytkownika powinien zostać dodany do bazy danych Redis. Ponadto ten sam użytkownik nie powinien być również dodawany do bazy danych. Tak więc idealną strukturą danych jest zestaw Redis, w którym zestawy przechowują tylko unikalnych członków.

Załóżmy, że witrynę odwiedziło pięciu użytkowników, którzy zostali dodani do bazy danych Redis, jak pokazano poniżej.

SADD YummyPizza Goście: październik John Mary Raza Stoinis Prince

Zgodnie z oczekiwaniami zwrócono liczbę całkowitą 5, co oznacza, że ​​pięciu członków zostało dodanych do zbioru przechowywanego w kluczu „ YummyPizzaOdwiedzający:październik.

Pod koniec dnia administratorzy firmy muszą sprawdzić całkowitą liczbę unikalnych odwiedzających witrynę. Tak więc liczność zestawu musi zostać obliczona. Na szczęście omówione wcześniej polecenie SCARD przydaje się w tego typu scenariuszu.

Wykonajmy polecenie SCARD na zestawie zapisanym pod klawiszem „ YummyPizzaOdwiedzający:październik.

scard YummyPizza Goście: październik

Dane wyjściowe to 5, co oznacza, że ​​w określonym zbiorze znajduje się pięciu unikatowych elementów członkowskich. To polecenie jest wykonywane zbyt szybko. Nie ma znaczenia pięciu członków czy 50000 członków; czas wykonania będzie stały.

Załóżmy, że określony zestaw kluczy nie istnieje w bazie danych Redis. Wtedy wyjście będzie miało wartość 0, jak pokazano w poniższym przykładzie. W tym przypadku określimy klucz, którego nie ma w bazie danych.

Scard NonExistingKey

Wniosek

Podsumowując, zestaw Redis jest idealnym kandydatem do przechowywania unikalnych ciągów znaków. Jak wspomniano, najważniejszą rzeczą w zbiorze Redis jest to, że wykonanie większości powiązanych operacji na zbiorach zajmuje stały czas. Polecenie SCARD jest jednym z najczęściej używanych poleceń zestawu do obliczania całkowitej liczby elementów zestawu dla danego zestawu przechowywanego pod określonym kluczem. Bez względu na to, ilu członków zestawu jest dostępnych, to polecenie wymaga stałego czasu, aby zapewnić dane wyjściowe. Jak pokazano w ostatnim przykładzie, jeśli ustawiony klucz nie istnieje, wynikiem będzie 0.