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: 1W 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 4Jak 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.
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.
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.