Jak używać zestawu sortowanego Redis

Jak używać zestawu sortowanego Redis
Zestawy posortowane są jednym z najcenniejszych i zaawansowanych typów danych w Redis. Zestawy posortowane są bardzo podobne do zestawów, ponieważ oba zawierają nie powtarzające się sekwencji łańcuchowych. Jednak w przeciwieństwie do zestawów standardowych, sortowane zestawy zawierają wartość wyniku powiązaną z każdym członkiem.

Wartość wyniku pozwala im sortować w określonej kolejności. Każdy członek sortowanego zestawu musi być unikalny, ale może dzielić wartość wynikową z wieloma członkami.

W tym samouczku dowiesz się wszystkiego o posortowanych zestawach w Redis i o tym, jak możesz je używać w bazach danych.

Upewnij się, że masz zainstalowany i uruchomiony istniejący serwer Redis, aby śledzić ten samouczek.

Tworzenie sortowanych zestawów

Aby utworzyć sortowany zestaw w Redis, użyj polecenia Zadd w CLI Redis. Polecenie Zadd przyjmuje trzy główne argumenty.

Pierwszy to nazwa klucza, który zawiera sortowany zestaw.

Drugi argument zawiera wynik członka, który jest dodawany do sortowanego zestawu.

Ostateczny i trzeci argument to faktyczna wartość członka w sortowanym zestawie.

Uwaga: kolejność argumentów ma znaczenie, ponieważ każde z nich reprezentuje wartości, jak podyktowano powyżej.

Spójrz na przykład pokazany poniżej.

127.0.0.1: 6379> Zadd Captains 1 „Jonathan Archer”

Powyższe polecenie tworzy posortowany zestaw zawierający nazwy kapitanów Star Trek. W powyższym przykładzie wartość „Jonathan Archer” ma wynik 1.

Polecenie zwraca wartość liczb całkowitą wskazującą całkowitą liczbę dodanych członków do posortowanego zestawu.

Redis nie ogranicza cię do dodania jednego członka do zestawu. Możesz dodać wiele wartości. Na przykład:

Zadd Captains 2 „Carol Freeman” 4 "Christopher Pike" 1 "Jean-Luc Picard" 3 "Kathryn Janeway."

Zauważysz dwie główne rzeczy w powyższym poleceniu:

  1. Po pierwsze, wynik dla każdego członka w sortowanym nie musi być sekwencyjny. Możesz przypisać wynik 100 do członka, nawet jeśli inne wyniki nie są ustawione na żadną wartość.
  2. Po drugie, członek może posiadać podobny wynik jak inny członek w sortowanym zestawie.

Opcje poleceń Zadd.

Polecenie Zadd akceptuje wiele opcji modyfikacji jego zachowania i funkcjonalności. Te opcje obejmują:

  1. NX - Opcja NX informuje polecenie Zadd tylko po to, aby dodać nowych członków. Ta opcja zapobiega aktualizacji istniejących członków w określonym zestawie.
  2. Z drugiej strony XX - opcja XX będzie aktualizować tylko istniejących członków i nie doda żadnych nowych członków do zestawu.

Uwaga: opcje NX i XX są sprzeczne. Dlatego możesz użyć tylko jednej opcji w jednym poleceniu.

  1. CH - Opcja CH mówi Zaddowi, aby uwzględnił liczbę zmienionych elementów. Domyślnie Zadd zwróci tylko liczbę nowo dodanych elementów. Polecenie Zadd zwróci liczbę dodanych elementów i zaktualizowane elementy za pomocą opcji CH.
  2. Incr - opcja Inclu informuje komendę Zadd, aby zwiększyć wynik członka. Jeśli określony element nie istnieje w sortowanym zestawie, Redis utworzy go automatycznie i ustawia przyrost jako wynik.

UWAGA: Korzystanie z polecenia Zincrby zamiast Zadd z opcją inclu jest zalecane. Oboje wykonują tę samą funkcję.

Pobieraj członków z sortowanego zestawu

Aby odzyskać członków posortowanego zestawu w Redis, użyj polecenia Zrange. Polecenie przyjmuje nazwę klucza i określony zakres członków, które chcesz odzyskać. Wartości zakresu elementów sortowanego zestawu są indeksy oparte na zerowej. Stąd pierwszy członek w zestawie jest w indeksie 0.

Na przykład, aby odzyskać członków z indeksu 0 do 10, wprowadź polecenie:

127.0.0.1: 6379> Zrange Captains 0 10

Polecenie zwróci członki w tym określonym zakresie. Przykładowe dane wyjściowe jest jak pokazano poniżej:

1) „Jonathan Archer”
2) „Carol Freeman”
3) „Kathryn Janeway”
4) „Christopher Pike”
5) „Jean-Luc Picard”

W przypadkach, w których sortowany zestaw zawiera elementy o podobnej wartości wyniku, członkowie będą posortowani w kolejności leksykograficznej.

Jeśli chcesz zdobyć członków w zestawie i powiązanych wynikach, możesz użyć opcji z Scores.

127.0.0.1: 6379> Zrange Captains 0 10 ZeS o

Przykładowe dane wyjściowe z powyższego polecenia jest takie, jak pokazano.

1) „Jonathan Archer”
2) „1”
3) „Carol Freeman”
4) „2”
5) „Kathryn Janeway”
6) „3”
7) „Christopher Pike”
8) „4”
9) „Jean-Luc Picard”
10) „5”

Załóżmy, że chcesz zdobyć członków w odwrotnej kolejności. Pamiętaj, że polecenie Zrange zwraca członków tylko w kolejności rosnącej. Aby uzyskać odwrotną kolejność, użyj polecenia Zrevrange.

127.0.0.1: 6379> Zrevrange Captains 0 10

Polecenie spowoduje odwrotną kolejność.

1) „Jean-Luc Picard”
2) „Christopher Pike”
3) „Kathryn Janeway”
4) „Carol Freeman”
5) „Jonathan Archer”

Możesz także dołączyć opcję withoPtions w poleceniu Zrevrange.

1) „Jean-Luc Picard”
2) „5”
3) „Christopher Pike”
4) „4”
5) „Kathryn Janeway”
6) „3”
7) „Carol Freeman”
8) „2”
9) „Jonathan Archer”
10) „1”

Wynikowa wartość będzie zawierać wyniki w odwrotnej kolejności.

Usuń elementy z sortowanego zestawu

Aby usunąć elementy z sortowanego zestawu, użyj polecenia ZREM.

127.0.0.1: 6379> Kapitanowie Zrem „Jonathan Archer”

Polecenie zwróci wartość całkowitą pokazującą liczbę elementów usunięte z sortowanego zestawu.

Aby usunąć elementy według zakresu, użyj polecenia ZreMbyRange.

127.0.0.1: 6379> kapitanowie ZreMrangeBlex [A [z

Polecenie usunie wartości na podstawie ich zakresu leksyk.

Aby usunąć członków z ich zakresu, użyj polecenia ZreMrangeByscore.

127.0.0.1: 6379> ZreMrangeByscore Captains 0 5

Uzyskaj informacje o sortowanych zestawach

Użyj polecenia ZCARD, aby pobrać liczbę członków w danym zestawie posortowanym.

127.0.0.1: 6379> Kapitanowie Zcard

Wartość zwracana jest liczbą całkowitą pokazującą liczbę elementów w zestawie.

Jeśli chcesz uzyskać liczbę członków w określonym zakresie, użyj polecenia ZCount.

127.0.0.1: 6379> ZCount Captains 0 10

Podobnie polecenie zwraca wartość całkowitą.

Aby uzyskać wynik określonego członka w sortowanym zestawie, użyj polecenia ZSCORE:

127.0.0.1: 6379> Kapitanowie Zscore „Carol Freeman”
„2”

Polecenie zwróci wynik członka, jeśli istnieje.

Wniosek

W tym artykule omówiono, jak zacząć i używać sortowanych zestawów w Ruby. Należy pamiętać, że w tym przewodniku jest więcej do sortowanych zestawów niż omówione. Rozważ dokumentację, aby dowiedzieć się więcej.