redis
Posortowane zestawy
Szukaj…
Wprowadzenie
Typ danych Posortowany zestaw w Redis jest uporządkowaną wersją typu danych Zestaw. Posortowany zestaw Redis składa się z kolekcji unikalnych członków. Każdy członek w posortowanym zestawie może być traktowany jako para składająca się z członka i partytury. Wynik służy do porządkowania członków zestawu w porządku rosnącym.
Składnia
- Klawisz ZADD [NX | XX] [CH] [INCR] partytor [partytor ...]
- Klawisz ZCARD
- Klucz ZCOUNT min. Maks
- Klucz ZLEXCOUNT min. Maks
Uwagi
Oficjalna dokumentacja dla posortowanych zestawów znajduje się na stronie Redis.io .
Posortowane zestawy są czasami nazywane zsetami. Jeśli użyjesz polecenia TYPE na posortowanym kluczu zestawu, wartość zset zostanie zwrócona.
Dodawanie elementów do posortowanego zestawu
Redis udostępnia polecenie ZADD, aby dodać elementy do posortowanego zestawu. Podstawową formą polecenia ZADD jest określenie zestawu, elementu do dodania i jego wyniku. Na przykład, jeśli chcę zbudować uporządkowany zestaw mojego ulubionego jedzenia (od najmniej do większości), mógłbym użyć jednego z:
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
lub alternatywnie:
zadd favs 1 apple 2 pizza 3 chocolate 4 beer
Funkcja ZADD działa bardzo podobnie do niesortowanej funkcji zestawu SADD. Wynikiem polecenia ZADD jest liczba dodanych elementów. Więc po utworzeniu mojego zestawu jak wyżej, jeśli spróbuję ponownie ZADD:
ZADD favs 4 beer
Otrzymałbym wynik 0, gdybym zdecydował, że lubię czekoladę bardziej niż piwo, mógłbym wykonać:
ZADD favs 3 beer 4 chocolate
aby zaktualizować moje preferencje, ale nadal otrzymam wynik 0, ponieważ zarówno piwo, jak i czekolada są już w zestawie.
Liczenie przedmiotów w posortowanym zestawie
Redis udostępnia trzy polecenia zliczania elementów w posortowanym zestawie: ZCARD, ZCOUNT, ZLEXCOUNT.
Polecenie ZCARD to podstawowy test liczności zbioru. (Jest to analogiczne do polecenia SCARD dla zestawów). ZCARD zwraca liczbę członków zestawu. Wykonanie następującego kodu w celu dodania elementów do zestawu:
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
z systemem ZCard:
zcard favs
zwraca wartość 4.
Polecenia ZCOUNT i ZLEXCOUNT pozwalają policzyć podzbiór elementów w posortowanym zestawie na podstawie zakresu wartości. ZCOUNT pozwala policzyć przedmioty w określonym zakresie wyników, a ZLEXCOUNT pozwala policzyć liczbę przedmiotów w określonym zakresie leksykalnym.
Korzystając z naszego zestawu powyżej:
zcount favs 2 5
zwróci 3, ponieważ są trzy elementy (pizza, czekolada, piwo), które mają wyniki od 2 do 5 włącznie.
ZLEXCOUNT jest zaprojektowany do pracy z zestawami, w których każdy przedmiot ma taki sam wynik, wymuszając i porządkując nazwy elementów. Jeśli stworzyliśmy zestaw taki jak:
zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer
moglibyśmy użyć ZLEXCOUNT, aby uzyskać liczbę elementów w danym zakresie leksykalnym (odbywa się to poprzez bajtowe porównanie za pomocą funkcji memcpy).
zlexcount favs [apple (chocolate
zwróci 2, ponieważ dwa elementy (jabłko, piwo) mieszczą się w przedziale jabłko (włącznie) i czekolada (wyłącznie). Alternatywnie możemy zrobić oba końce włącznie:
zlexcount favs [apple [chocolate
i uzyskaj wynik 3.