So verwenden Sie Redis sortiertes Set

So verwenden Sie Redis sortiertes Set
Sortierte Sets sind einer der wertvollsten und fortschrittlichsten Datentypen in Redis. Sortierte Sets sind den Sätzen sehr ähnlich, da beide nicht wiederholende String-Sequenzen enthalten. Im Gegensatz zu Standard -Sets enthalten sortierte Sets jedoch einen Punktzahl, der jedem Mitglied zugeordnet ist.

Der Wertwertwert ermöglicht es ihnen, in einer bestimmten Reihenfolge sortiert zu werden. Jedes Mitglied eines sortierten Satzes muss eindeutig sein, kann jedoch einen Punktzahl mit mehreren Mitgliedern teilen.

In diesem Tutorial erfahren Sie alles über die sortierten Sets in Redis und wie Sie sie in Ihren Datenbanken verwenden können.

Stellen Sie sicher.

Erstellen sortierter Sets

Verwenden Sie den Befehl ZADD in der Redis -CLI, um einen sortierten Set in Redis zu erstellen. Der Befehl zadd nimmt drei Hauptargumente ein.

Der erste ist der Name des Schlüssels, der den sortierten Satz hält.

Das zweite Argument hält die Punktzahl des Mitglieds, die dem sortierten Satz hinzugefügt wird.

Das letzte und dritte Argument ist der tatsächliche Wert des Mitglieds im sortierten Satz.

HINWEIS: Die Reihenfolge der Argumente ist wichtig, da die oben diktierten Werte jeweils darstellen.

Schauen Sie sich das unten gezeigte Beispiel an.

127.0.0.1: 6379> Zadd Captains 1 "Jonathan Archer"

Der obige Befehl erstellt einen sortierten Satz, der die Namen von Star Trek Captains enthält. Im obigen Beispiel hat der Wert von „Jonathan Archer“ eine Punktzahl von 1.

Der Befehl gibt einen Ganzzahlwert zurück, der die Gesamtzahl der zu dem sortierten Satz hinzugefügten Mitglieder anzeigt.

Redis beschränkt Sie nicht auf das Hinzufügen eines einzelnen Mitglieds zum Set. Sie können mehrere Werte hinzufügen. Zum Beispiel:

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

Sie werden im obigen Befehl zwei wichtige Dinge bemerken:

  1. Erstens muss die Punktzahl für jedes Mitglied in der Sorten nicht sequentiell sein. Sie können einem Mitglied eine Punktzahl von 100 zuweisen, auch wenn die anderen Bewertungen auf keinen Wert eingestellt sind.
  2. Zweitens kann ein Mitglied eine ähnliche Punktzahl wie ein anderes Mitglied im sortierten Satz halten.

ZADD -Befehlsoptionen.

Der Befehl ZADD akzeptiert mehrere Optionen, um sein Verhalten und die Funktionalität zu ändern. Diese Optionen umfassen:

  1. NX - Die NX -Option teilt dem Befehl zadd nur mit, um neue Mitglieder hinzuzufügen. Diese Option verhindert, dass der Befehl vorhandene Mitglieder im angegebenen Satz aktualisiert wird.
  2. Auf der anderen Seite aktualisiert XX - Die XX -Option aktualisiert nur die vorhandenen Mitglieder und fügt den Set keine neuen Mitglieder hinzu.

Hinweis: NX- und XX -Optionen sind widersprüchlich. Daher können Sie nur eine Option in einem einzigen Befehl verwenden.

  1. CH - Die CH -Option fordert ZADD an, die Anzahl der geänderten Elemente einzuschließen. Standardmäßig gibt ZADD nur die Anzahl der neu hinzugefügten Elemente zurück. Der Befehl ZADD gibt die Anzahl der hinzugefügten Elemente und aktualisierten Elemente über die CH -Option zurück.
  2. Inkret. Wenn das angegebene Mitglied im sortierten Satz nicht vorhanden ist, erstellt Redis es automatisch und setzt das Inkrement als Punktzahl ein.

HINWEIS: Verwenden des Befehls zincrby anstelle von zadd mit der Incol -Option wird empfohlen. Beide führen die gleiche Funktion aus.

Abrufen Sie Mitglieder von einem sortierten Set ab

Verwenden Sie den Befehl Zrange, um Mitglieder eines sortierten in Redis festgelegten Sortierersatzes abzurufen. Der Befehl nimmt den Namen des Schlüssels und einen bestimmten Bereich der Mitglieder, die Sie abrufen möchten. Die Bereichswerte der Mitglieder des sortierten Sets sind auf Null-basierte Indizes. Daher befindet sich das erste Mitglied im Set am Index 0.

Geben Sie beispielsweise den Befehl ein, um die Mitglieder von Index 0 bis 10 abzurufen:

127.0.0.1: 6379> Zrange Captains 0 10

Der Befehl gibt die Mitglieder in diesem angegebenen Bereich zurück. Die Beispielausgabe ist wie unten gezeigt:

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

In den Fällen, in denen der sortierte Satz Mitglieder mit einem ähnlichen Wertwert enthält, werden die Mitglieder in lexikografischer Reihenfolge sortiert.

Wenn Sie die Mitglieder innerhalb des Sets und der zugehörigen Bewertungen einbringen möchten, können Sie die Option With Scores verwenden.

127.0.0.1: 6379> Zrange Captains 0 10 With Scores

Die Beispielausgabe aus dem obigen Befehl ist wie gezeigt.

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"

Angenommen, Sie möchten die Mitglieder in umgekehrter Reihenfolge bringen. Denken Sie daran, dass der Befehl zrange nur die Mitglieder in aufsteigender Reihenfolge zurückgibt. Verwenden Sie den Befehl zrevrange, um die umgekehrte Reihenfolge zu erhalten.

127.0.0.1: 6379> Zrevrange Captains 0 10

Der Befehl führt in umgekehrter Reihenfolge.

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

Sie können auch die Option "WithOptions" in den Befehl ZrevRange einfügen.

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"

Der resultierende Wert enthält die Bewertungen in umgekehrter Reihenfolge.

Entfernen Sie die Mitglieder aus einem sortierten Set

Verwenden Sie den Befehl ZREM, um die Mitglieder aus einem sortierten Satz zu entfernen.

127.0.0.1: 6379> Zrem Captains "Jonathan Archer"

Der Befehl gibt einen Ganzzahlwert zurück.

Verwenden Sie den Befehl Zrembyrrange, um Elemente nach Reichweite zu entfernen.

127.0.0.1: 6379> Zremrangebylex Captains [A [Z

Der Befehl entfernt die Werte basierend auf seinem Lexiko -Bereich.

Verwenden Sie den Befehl ZremrangeByscore, um die Mitglieder in ihrem Punktestand zu entfernen.

127.0.0.1: 6379> Zremrangebyscore Captains 0 5

Holen Sie sich Informationen zu sortierten Sätzen

Verwenden Sie den Befehl ZCard, um die Anzahl der Mitglieder in einem bestimmten Sortiersatz abzurufen.

127.0.0.1: 6379> Zcard -Kapitäne

Der Rückgabewert ist eine Ganzzahl, die die Anzahl der Elemente in einem Satz zeigt.

Wenn Sie die Anzahl der Mitglieder innerhalb eines bestimmten Bereichs erhalten möchten, verwenden Sie den Befehl ZCount.

127.0.0.1: 6379> ZCount Captains 0 10

In ähnlicher Weise gibt der Befehl einen Ganzzahlwert zurück.

Verwenden Sie den Befehl ZScore, um die Punktzahl eines bestimmten Mitglieds innerhalb eines sortierten Satzes zu erhalten:

127.0.0.1: 6379> Zscore Captains "Carol Freeman"
"2"

Der Befehl gibt die Punktzahl des Mitglieds zurück, wenn es existiert.

Abschluss

In diesem Artikel wurde erläutert, wie man starten und sortierte Sets in Ruby verwendet. Denken Sie daran, dass sortierte Sets mehr als in diesem Leitfaden besprochen werden. Betrachten Sie die Dokumentation, um mehr zu erfahren.