Redis Zrevrange

Redis Zrevrange
„Die sortierte Datenstruktur ist ein spezieller Datentyp, der von Redis eingeführt wird, in dem die gespeicherten Elemente in aufsteigender Reihenfolge bestellt werden. Die Mitglieder, die in einem sortierten Set gespeichert sind. Jedes Mitglied ist mit einer Punktzahl und einem Rang verbunden, bei dem die Abfrage durch beide Eigenschaften durchgeführt werden kann. Der Rang oder Index wird jedem Mitglied zugewiesen, beginnend bei Null; Das nächste Element ist eins und so weiter. Außerdem kann der Index ein negativer Wert sein. Der Rang -1 zeigt das letzte Mitglied des sortierten Satzes an. Das Element neben dem letzten Element wird mit dem -2 -Index usw. bezeichnet.

Die Befehle von Zrevrange und ZRange können Mitglieder zwischen einem bestimmten Indizesbereich eines sortierten Satzes abrufen, der in einem bestimmten Schlüssel gespeichert ist. Diese Befehle akzeptieren sowohl die positiven als auch die negativen Indexwerte bei der Abfrage der Mitglieder eines bestimmten Bereichs. In diesem Leitfaden konzentrieren wir uns auf den Befehl Zrevrange und seine praktische Verwendung.”

Redis Zrevrange Command

Der Befehl zrevrange wird verwendet, um die Mitglieder zwischen angegebenen minimalen und maximalen Indexwerten eines sortierten Satzes abzufragen, der in einer bestimmten Taste gespeichert ist. Die Mitglieder werden aufgrund ihres Bewertungswerts in absteigender Reihenfolge zurückgegeben. Immer wenn die mehreren Mitglieder die gleiche Punktzahl haben, werden die Elemente lexikografisch bestellt.

Syntax

Zrevrange Sorted_set_key start_index end_index [withCores]

sorted_set_key: Dies ist die eindeutige ID, die den sortierten Set im Redis -Datenspeicher identifiziert

Startindex: Der Startindex des angegebenen Bereichs

end_index: Der Endindex des angegebenen Bereichs

[With Scores]: Dies ist ein optionales Argument, wenn bestimmte Mitglieder mit ihren Punktzahlen zurückgegeben werden.

Der Befehl gibt eine Reihe von Mitgliedern zurück, die zwischen dem angegebenen Indexbereich gespeichert sind. Wenn der Mit Erkenntnissen Es wurde Argument angegeben, die Bewertungen werden in die Ausgabe enthalten sein.

Beispiel: Geben Sie die Spieler zurück, die die meisten Levels in einem Online -Spiel absolviert haben

Nehmen wir ein Online -Community -Spiel an, bei dem jeder Spieler basierend auf der Anzahl der abgeschlossenen Levels eingestuft wird. Am Ende jeder Woche erhalten die drei besten Spieler Bonusgeschenke. Daher müssen wir die Top -3 -Spieler, die die meisten Levels im Spiel absolviert haben, abfragen. Wir können die Anzahl der abgeschlossenen Ebenen als Punktzahl eines in einem redis sortierten Satzes zuweisen.

Erstens werden wir ein paar Spieler zu einem sortierten Set namens hinzufügen Gameleaderboard.

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

Im obigen Beispiel, Spieler: 1 hat 4 Level abgeschlossen, Spieler: 5 hat 10 Level abgeschlossen und so weiter. Die obigen Informationen zu einem Spieler wurden einem sortierten Satz zugeordnet, wie im Folgenden gezeigt.

Verwenden wir den Befehl zrevrange, um alle Mitglieder zu fragen, deren abgeschlossene Ebene höher ist und an die Spitze der Liste geht.

Zrevrange Gameleaderboard 0 4

Wie in der obigen Abbildung verbreiteten sich die sortierten Set -Indizes von 0 auf 4. Daher haben wir die Start- und Endindizes als 0 bzw. 4 angegeben, die idealerweise alle Mitglieder zurückgeben sollten, die zu dem vom Schlüssel identifizierten sortierten Satz gehören Gameleaderboard aS Sie können sehen, dass es die Mitglieder so bestellt hat, dass die meisten Spieler die meisten abgeschlossenen Levels im Spiel haben.

Abfragen von Mitgliedern mit ihren Punktzahlen
Der Befehl zRange kann mit dem optionalen Argument mit dem With Scores verwendet werden, um die Punktzahlwerte jedes Players im obigen Beispiel anzuzeigen.

Zrevrange Gameleaderboard 0 4 With Scores

Ausgang

Abfragen von Mitgliedern ab dem Ende des sortierten Satzes
In allen oben genannten Beispielen haben wir den 0-basierten Index verwendet, der vom Beginn des sortierten Satzes zählt. Wir können den Indexbereich ab dem Ende des sortierten Satzes angeben. Angenommen, wir müssen die Spieler abfragen, deren Bewertungen mit dem Befehl zrevrange am niedrigsten sind.

Zrevrange Gameleaderboard -3 -1 mit Erscheinen

In diesem Fall wurde der Endindex als -1 angegeben, was das letzte Element bedeutet. Der Startindex beträgt -3. Daher wird es die Mitglieder am Ende des sortierten Satzes an das dritte Mitglied abfragen. Dies ist sehr klar, wenn Sie die obige Abbildung verwenden, die zeigt, wie die Indizes auf beide Arten verwendet werden können.

Der Befehl zrange anstelle von zrevrange

Der Befehl zrevrange wurde aus der Redisversion 6 veraltet.2.0. Daher wird empfohlen, den Befehl ZRange mit dem optionalen Rev. Argument zu verwenden, der dem Befehl Zrevrange genauso verhält.

Abschluss

Zusammenfassend wird der Befehl zrevrange verwendet. Es ruft die Mitglieder ab, die in umgekehrter Reihenfolge zwischen den angegebenen Indexwerten gespeichert sind. Abgesehen von der umgekehrten Reihenfolge der Mitglieder verhält sich dieser Befehl ähnlich dem Befehl ZRange. Wie oben erwähnt, hat es eine logarithmische Zeitkomplexität, die den Befehl ziemlich schnell in Echtzeitanwendungen effizient verwendet. Daher ist der Befehl zrevrange ideal zu verwenden, wann immer Sie Elemente in absteigender Reihenfolge von einem sortierten Satz abrufen müssen.