Redis Zrank

Redis Zrank
Redis -sortierte Sets können eine Sammlung von Strings enthalten, in denen jedes ein festgelegte Mitglied bezeichnet wird. Jedes Mitglied ist mit einem Rang- und Bewertungswert verbunden. Rang ist der Index eines bestimmten Mitglieds in dem sortierten Satz, der in einem bestimmten Schlüssel gespeichert ist. Der Bewertungswert wird verwendet, um die festgelegten Mitglieder vom niedrigsten bis zum höchsten Bewertungswert zu bestellen. Daher wird ein Mitglied mit dem niedrigsten Wertwert einem Index von 0 zugewiesen. Diese Eigenschaften ermöglichen es sortierten Sets, viel mehr Aufgaben mit hoher Leistung zu erledigen.

Für den Betrieb bei sortierten Sets stehen verschiedene Befehle zur Verfügung. Manchmal müssen Sie den Index oder Rang eines Mitglieds in der Redis -Sortierten kennen, die in einem bestimmten Schlüssel gespeichert ist. Die Zrank ist der ideale Befehl, der im folgenden Abschnitt erörtert wird.

Der Befehl Zrank

Jetzt haben Sie eine Vorstellung davon, wie der Indexwert jedem Mitglied in einem sortierten Satz zugewiesen wurde. Der Befehl Zrank erhält den Rang eines angegebenen Elements mit linearer Zeitkomplexität. Das Folgende ist die Syntax für den Befehl Zrank:

Zrank Sorted_set_key Mitglied

sorted_set_key: Der Schlüssel des sortierten Satzes, zu dem das Mitglied gehört.

Mitglied: Der Name des Mitglieds, den Sie benötigen, um den Rang zu erhalten.

Dieser Befehl gibt den Rang oder den Index des angegebenen Mitglieds als Ganzzahlwert zurück, wenn das Mitglied im sortierten Satz existiert. Immer wenn das angegebene Mitglied oder die Sortier -Set -Taste nicht vorhanden ist, gibt der Befehl Zrank einen String -Wert zurück Null.

Fall 01: Holen Sie sich die Position eines Spielers für die Rangliste eines Spielers

Nehmen wir an, wir haben eine Online -Spiele -Rangliste mit dem Redis sortierten Set implementiert. Jetzt werden wir den Rang jedes Spielers angezeigt, wenn sie sich in ihr Benutzerprofil anmelden.

Lassen Sie uns zunächst eine Dummy -Rangliste erstellen, OnlineGameleaderboard, und fügen Sie die Spieler mit dem ZADD -Befehl hinzu.

Zadd OnlineGameleaderboard 3000 "Jack" 1200 "Mary" 1000 "Rikaz" 5000 "Noel"

Als nächstes rufen wir den Befehl zrange an, um zu prüfen, ob die Mitglieder korrekt hinzuge.

Zrange OnlineGameleaderboard 0 10 mit Erscheinen

Ausgang:

Wie erwartet wurden die Mitglieder nach ihren Bewertungswerten in aufsteigender Reihenfolge sortiert. Nehmen wir an, wir müssen die Ränge dieser Mitglieder erhalten. Die Zrank kann als Folgendes verwendet werden:

Zrank OnlineGameleaderboard Rikaz
Zrank OnlineGameleaderboard Mary
Zrank OnlineGameleaderboard Jack
Zrank OnlineGameleaderboard Noel

Ausgang:

Wie erwartet kehrte der Rang für jedes Mitglied zurück, in dem das Mitglied „Rikaz“ den niedrigsten Rang von 0 hat. Außerdem bekam das Mitglied „Noel“ den höchsten Rang von 3.

Überprüfen Sie, wie sich der Befehl verhält, wenn Sie im folgenden Befehl ein nicht existierendes Mitglied angeben:

Zrank OnlineGameleaderboard Martin

Das Mitglied, das wir spezifiziert haben. Daher gab es die Zeichenfolge zurück Null.

Als nächstes werden wir den folgenden Befehl für den nicht existierenden Schlüssel überprüfen:

Zrank nicht vorhandene Martin

Der Rückgabewert ist wieder Null.

Der Befehl Zrank unterstützt mehrere Mitglieder nicht als Argumente. Wenn Sie also mehrere Mitglieder zur Verfügung stellen, wirft dies einen Fehler auf. Der Befehl zrank wird empfohlen, wenn Sie den Indexwert eines sortierten SET -Mitglieds erhalten müssen.

Kurzer. Jedes dieser Mitglieder ist mit zwei Eigenschaften verbunden: Punktzahl und Rang. Wie erläutert, basiert der Rang auf 0 und wird von einem pro Mitglied erhöht. Normalerweise werden die von Redis sortierten Set -Mitglieder durch ihre Punktzahlen in aufsteigender Reihenfolge bestellt. Daher wird das Mitglied mit der niedrigsten Punktzahl dem 0. Index zugeordnet.

Abschluss

In diesem Artikel wurde erläutert, wie mit dem Befehl Zrank Sie diesen Indexwert für ein bestimmtes Mitglied in dem sortierten Satz erhalten können, der in einem bestimmten Schlüssel gespeichert ist. Es ist wichtig zu beachten, dass der Befehl Zrank mit linearer Zeitkomplexität arbeitet.