Polecenie Redis Xlen

Polecenie Redis Xlen
Stream Redis to struktura danych dziennika, która przezwycięża ograniczenia zwykłego pliku dziennika tylko do dodania. To najnowszy dodatek do typów danych Redis z wersji 5.0. Opiera się na koncepcji wydawcy-konsumera, w której wiele źródeł publikuje dane do strumienia, a kilku konsumentów lub grup konsumenckich czyta z niego.

Stream Redis może przechowywać parę wartości pola w swoich węzłach makro. Jest to wydajne pamięć i szybki w dostępie do wpisów strumieniowych, ponieważ jest oparty na strukturze drzewa Radix. Wpisy wyglądają jak pary wartości klucza Hash Redis.

Poprzednia ilustracja pokazuje strumień przechowywany w kluczu „SurveryResponse: User01”. Zawiera N liczbę wpisów.

Liczba wpisów strumienia z xlen

W aplikacjach rzeczywistych może być konieczne wiedzieć, ile wpisów jest dostępnych w danym strumieniu. Wykonanie połączenia XRange nie jest praktyczne z minimalnym i maksymalnym możliwym identyfikatorem, aby zapytać wszystkie wpisy na strumień i liczyć je programowo. Zużywa czas na odczyt i liczenie przez dwie operacje.

Stąd Redis zapewnia Xlen polecenie do zliczenia wpisów dla strumienia przechowywanego w określonym kluczu. To polecenie ma stałą złożoność czasu, która jest szybka dla twoich aplikacji.

Składnia

Xlen

Xlen Polecenie zwraca liczbę całkowitą, liczba wpisów przechowywanych w strumieniu.

Strumienie różnią się nieco od innych typów danych Redis, ponieważ strumień może istnieć z zerowymi wpisami. Strumienie Redis mogą mieć wiele grup konsumenckich. XDEL polecenie nie usunie samego strumienia, nawet jeśli wszystkie wpisy zostały usunięte. Stąd Xlen Polecenie może zwrócić 0 w dwóch przypadkach:

  1. Strumień jest pusty lub wszystkie wpisy zostały już usunięte.
  2. Klucz strumienia nie istnieje.

Strumień przechowywany w kluczu SurveyResponse: User02 jest pusty. Ale ma dwie grupy konsumenckie. Stąd strumień istnieje. W aplikacjach rzeczywistych musisz wykonać wyraźną kontrolę za pomocą Istnieje polecenie sprawdzenia, czy Klucz Redis istnieje, czy nie.

Przykład: Policz liczbę użytkowników uczestniczących w ankiecie online

Załóżmy, że restauracja przeprowadziła ankietę internetową, aby uzyskać ocenę gwiazdy od swoich klientów na ich jakość usług. Wykorzystali sklep danych Redis w pamięci, aby śledzić każdą ocenę klienta. Każdy wpis strumienia składa się z kilku par wartości pola do przechowywania oceny jako liczb całkowitych i identyfikatorów użytkownika jako ciąg.

Utwórzmy strumień za pomocą polecenia XADD.

Xadd restauracje * UserID 1 Ocena 3
xadd restauracje * UserID 2 ocena 5
xadd restauracje * UserID 3 ocena 1
xadd restauracje * UserID 4 ocena 5

Do strumienia dodano cztery wpisy przechowywane w kluczu RestaurantSurvey.

Następnie użyjemy Xlen polecenie, aby policzyć liczbę użytkowników, którzy wzięli udział w ankiecie.

Xlen Restaurantsurvery

Wyjście:

Zgodnie z oczekiwaniami wartość zwrotu wynosi 4. Załóżmy, że w ankiecie wzięło udział ponad 10 000 klientów. A później Xlen Komenda byłaby ratunkiem. Nawet polecenie Redis Xlen zajęłoby stały czas na policzenie 4 klientów lub 10 000 klientów.

Wniosek

Strumienie Redis mogą zawierać tysiące wpisów, aż do osiągnięcia maksymalnej pamięci, gdzie każdy wpis wygląda jak para wartości pola. Zwykle kłopotliwe jest policzenie liczby wpisów przechowywanych w programie strumieniowym. Zużywa czas na dwie operacje, takie jak czytanie i liczenie. Stąd Redis zapewnia operację liczby po pudełku z poleceniem XLen. Ma stałą złożoność czasu, która jest szybka w zastosowaniach w aplikacjach o wysokiej wydajności. Polecenie XLen bierze klucz tylko jako parametr.