Redis LPOs

Redis LPOs

„Redis -Listen sind verknüpfte Listen von Strings, die in der Sequenz bestellt wurden. Redis -List -Vorgänge sind äußerst effektiv, da sie zu konstanter Zeitkomplexität am Kopf oder am Schwanz laufen. Redis ist einzigartig unter den Schlüsselwertspeichern, da es verknüpfte Listen ermöglicht, was es zu einer verknüpften Listenstruktur macht. Die maximale Länge einer Redisliste beträgt 2^32 - 1 (4,294.967.295) Elemente, die mehr als 4 Milliarden Elemente pro Liste enthält.”

Das obige Diagramm zeigt die Anordnung einer Elemente für Redislisten und im Indexformat, das bei der Verwendung des LPOS-Befehls eine wichtige Rolle spielt.

Kurzer Überblick über den Befehl LPOs

Der Befehl LPOS in Redis gibt den passenden Index der Elemente auf einer Liste zurück. Darüber hinaus scannt der Befehl LPOS eine Liste vom ersten Index zum letzten Index, bis ein Matching -Element für das angegebene Element gefunden wird. Wenn das angegebene Listenelement gefunden wird, wird der Elementindex zurückgegeben. Das Sonderangebot NULL Der Wert wird zurückgegeben, wenn keine Übereinstimmung gefunden wird.

Eine kurze Überprüfung der Syntax des LPOS -Befehls

LPOS LIST_KEY LIST_ELEMENT [RANK] [Zählen Sie Num-Matchs] [Maxlen Länge]

Die Argumente in den Quadratklammern sind optional. Das normale Verhalten des LPOS -Befehls besteht darin, den Index des ersten Auftretens des angegebenen Elements zurückzugeben, wenn optionale Argumente nicht angegeben sind.

Der RANG Die Option wird verwendet, um zu geben, welche Instanz des Wertes zurückgibt, und kann nützlich sein, wenn die Liste aus zahlreichen Vorkommen desselben Wertes besteht.

Der ZÄHLEN Die Option gibt die Position mehrerer Instanzen des angegebenen Listenelements zurück.

Der Maxlen Die Option wird verwendet, um die Vergleiche auf einen bestimmten Betrag zu beschränken. Darüber hinaus hilft es, die Zeit zu begrenzen, die ein Befehl zum Ausführen benötigt, insbesondere wenn es sich um eine große Liste handelt und wenn Sie erwarten, dass ein Match früh gefunden wird.

Der LPOS -Befehl in Aktion

Erstellen einer Redisliste mit dem Namen "Namen" mit Hilfe des RPUSH, um den Befehl LPOs wie folgt zu demonstrieren:

Rpush namen "jenny" "Leon" "Nick" "Jenny" "Heron" "Jenny" "Elle" "Heron"

Ergebnis

Überprüfen Sie die Ausgabe der Liste über den folgenden Befehl:

Lrange Namen 0 -1

Ergebnis

Verwenden Sie den Befehl LPOs, um die erste Instanz von „Jenny“ wie folgt zu finden:

LPOs nennt "Jenny"

Ergebnis

Wie bereits erwähnt, gibt der LPOS -Befehl das erste Auftreten des Elements zurück, wenn keine optionalen Argumente angegeben sind.

Die Rangoption

Diese Option gibt die Instanz des zu zurückgegebenen Werts an und ist nützlich, wenn die Liste mehrere Vorkommen des identischen Werts enthält.

Die erstellte Liste enthält mehrere Vorkommen von Jenny Und Reiher. Im früheren Beispiel wurde die erste Elementinstanz, da die Rangoption nicht angegeben wurde.

Verwenden der Rangoption, um die Position der zweiten Instanz von zurückzusetzen Jenny Verwenden des folgenden Beispiels:

LPOS -Namen "Jenny" Rang 2

Ergebnis

Hier das RANG Die Option wird als 2 angegeben. Der Befehl LPOs gibt also die Position der zweiten Instanz des angegebenen Listenelements zurück, das 3 ist. Wenn die Rangoption als 1 angegeben ist, sollte sie die erste Instanz des angegebenen Elements zurückgeben. Wenn 2 bereitgestellt werden, gibt es den Index der zweiten Instanz aus; 3 erzeugt den Index der dritten Instanz und so weiter.

Wenn ein Rang höher angegeben ist als die Anzahl der Vorkommen, kehrt er zurück Null:

LPOS -Namen "Jenny" Rang 20

Ergebnis

Außerdem kann die Rangoption als negativer Rang verwendet werden, in dem sie vom Schwanz der Liste rückwärts funktioniert:

LPOS -Namen "Jenny" Rang -1

Ergebnis

Hier, -1 wird verwendet, um die Position des letzten Auftretens des Wertes zurückzugeben. In diesem Fall ist die Position von „Jenny“ der fünfte Index.

Die Anzahl der Zähloption

Diese Option wird verwendet, um die Position mehrerer Instanzen eines bestimmten Wertes oder eines bestimmten Elements zurückzugeben:

LPOS -Namen "Jenny" Count 2

Ergebnis

Diese Option kann auch verwendet werden, um die Position aller Instanzen zurückzugeben. Hier kann eine Person null (0) verwenden, um den Befehl zu sagen, dass er alle Übereinstimmungen gemäß der Notwendigkeit zurücksetzt:

LPOS -Namen "Jenny" zählen 0

Ergebnis

Die Option Count kann mit der Rangoption kombiniert werden, um alle Instanzen von einem bestimmten Punkt wie folgt zurückzugeben:

LPOS -Namen "Jenny" Rang 2 Count 0

Ergebnis

Die Maxlen -Option

Der Maxlen wird verwendet, um die Vergleiche auf eine bestimmte Menge zu beschränken, und ist nützlich, um die Zeit zu begrenzen, die der Befehl in Zeiten, in denen die Liste groß ist.

Zum Beispiel,

LPOS -Namen "Jenny" Maxlen 2

Ergebnis

Wenn die Übereinstimmung gefunden wird, gibt es die Position oder den Index des angegebenen Elements zurück.

Bei Verwendung eines anderen Wertes:

LPOS -Namen "Elle" Maxlen 2

Ergebnis

Wie erwartet ist das Element „Elle“ nicht innerhalb der angegebenen maximalen Grenze von 2 gefunden.

Außerdem kann eine Person Null (0) verwenden, um eine unbegrenzte Anzahl von Vergleiche anzugeben,

LPOS -Namen "Elle" Maxlen 0

Ergebnis

Abschluss

Zusammenfassend spielt der LPOS. Der Befehl LPOs akzeptiert verschiedene Argumente, die das Verhalten des Befehls erweitern. Insgesamt arbeitet es ständig in der Nähe des Kopfes und des Schwanzes, oder die Option Maxlen ist angegeben, was sehr effizient ist.