„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.