Redis Zrevrange

Redis Zrevrange
„Sortowana struktura danych zestawu jest specjalnym typem danych wprowadzonym przez Redis, w którym zapisane elementy są uporządkowane w kolejności rosnącej. Członkowie przechowywani wewnątrz sortowanego zestawu przypominają para wartości pola w skrócie Redis. Każdy członek jest powiązany z wynikiem i ranga, w której zapytanie można wykonać przez obie nieruchomości. Ranga lub indeks jest przypisany do każdego członka, zaczynając od zera; Następny element to jeden i tak dalej. Wskaźnik może być wartością ujemną. Ranga -1 wskazuje ostatniego członka sortowanego zestawu. Element obok ostatniego elementu jest oznaczony przez indeks -2 i tak dalej.

Polecenia Zrevrange i Zrange są zdolne do odzyskania członków między określonym zakresem indeksów sortowanego zestawu przechowywanego w danym kluczu. Polecenia te akceptują zarówno dodatnie, jak i ujemne wartości indeksu podczas zapytania o członków danego zakresu. W tym przewodniku skupimy się na poleceniu Zrevrange i jej praktycznym użyciu."

Polecenie Redis Zrevrange

Polecenie Zrevrange służy do zapytania o elementy między określonymi minimum a maksymalnymi wartościami indeksu sortowanego zestawu przechowywanego w danym kluczu. Członkowie są zwracani w kolejności malejącej na podstawie ich wartości wyniku. Ilekroć wielu członków ma ten sam wynik, elementy będą zamówione leksykograficznie.

Składnia

Zrevrange sorted_set_key start_index end_index [withscores]

sorted_set_key: Jest to unikalny identyfikator, który identyfikuje sortowany zestaw w magazynie danych Redis

start_index: Wskaźnik początkowy określonego zakresu

end_index: Wskaźnik końcowy określonego zakresu

[Zscores]: Jest to opcjonalny argument, gdy określani członkowie zostaną zwrócone z wynikiem.

Polecenie zwróci tablicę członków przechowywanych między określonym zakresem indeksu. Jeśli Zscores Argument został określony, wyniki zostaną uwzględnione w wyjściu.

Przykład: zwróć graczy, którzy ukończyli największą liczbę poziomów w grze online

Załóżmy, że gra online, w której każdy gracz jest uszeregowany na podstawie liczby ukończonych poziomów. Pod koniec każdego tygodnia trzech najlepszych graczy otrzymuje dodatkowe prezenty. Dlatego musimy zapytać 3 najlepszych graczy, którzy ukończyli największą liczbę poziomów w grze. Możemy przypisać liczbę ukończonych poziomów jako wynik członka przechowywanego w zestawie sortowanym Redis.

Najpierw dodamy kilku graczy do sortowanego zestawu Gameleaderboard.

Zadd Gameleaderboard 4 Player: 1
Zadd Gameleaderboard 2 Player: 3
Zadd Gameleaderboard 5 Player: 2
Zadd Gameleaderboard 1 Player: 4
Zadd Gameleaderboard 10 Player: 5

W powyższym przykładzie, Gracz: 1 ukończył 4 poziomy, Gracz: 5 ukończył 10 poziomów i tak dalej. Powyższe informacje dotyczące odtwarzacza zostały zmapowane na sortowany zestaw, jak pokazano następujące.

Użyjmy polecenia Zrevrange, aby zapytać wszystkich członków, których ukończona liczba poziomów jest wyższa i przechodzi na szczyt listy.

Zrevrange GameLeaderboard 0 4

Jak na powyższej ilustracji, posortowane indeksy zestawu rozprzestrzeniły się od 0 do 4. Dlatego określliśmy indeksy początkowe i końcowe odpowiednio jako 0 i 4, co powinno najlepiej zwrócić wszystkich członków należących do sortowanego zestawu zidentyfikowanego przez klucz Gameleaderboard aS, które możesz zobaczyć, zamówił członkom w sposób, aby większość najlepszych graczy miała największą liczbę ukończonych poziomów w grze.

Kwestionowanie członków z ich wynikami
Polecenie Zrange można użyć z opcjonalnym argumentem z scores, aby wyświetlić wartości wyników każdego gracza w powyższym przykładzie.

Zrevrange GameLeaderboard 0 4

Wyjście

Członkowie zapytania zaczynające się od końca sortowanego zestawu
We wszystkich powyższych przykładach użyliśmy indeksu opartego na 0, który liczy się od początku sortowanego zestawu. Możemy również określić zakres indeksu, zaczynając od końca sortowanego zestawu. Powiedzmy, że musimy zapytać graczy, których wyniki są najniższe za pomocą polecenia Zrevrange.

Zrevrange GameLeaderboard -3 -1 z sesorami

W takim przypadku indeks końcowy został określony jako -1, co oznacza ostatni element. Indeks startowy to -3. Stąd będzie zapytał członków do trzeciego członka od końca sortowanego zestawu. Jest to bardzo jasne, jeśli użyjesz powyższej figury, co pokazuje, w jaki sposób indeksy można używać na obie sposoby.

Polecenie Zrange zamiast Zrevrange

Polecenie Zrevrange zostało przestarzałe z wersji 6 Redis.2.0. Dlatego zaleca się użycie polecenia Zrange z opcjonalnym argumentem obrotowym, który zachowuje się tak samo jak polecenie Zrevrange.

Wniosek

Podsumowując, polecenie Zrevrange służy do zapytań członków między określonymi indeksami minimum i maksymalnymi z zestawu sortowanego z Redis przechowywanego w danym kluczu. Odzyskuje elementy przechowywane między określonymi wartościami indeksu w odwrotnej kolejności. Oprócz odwróconego uporządkowania członków, polecenie to zachowuje się podobnie do polecenia Zrange. Jak wspomniano powyżej, ma logarytmiczną złożoność czasu, która sprawia, że ​​polecenie jest dość szybkie w aplikacjach w czasie rzeczywistym. Stąd polecenie Zrevrange jest idealne do użycia w dowolnym momencie, gdy trzeba pobrać elementy w kolejności malejącej z sortowanego zestawu.