


Analyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren Verwendung
Einführung in die Liste
list ist ein String-Array, das in Einfügereihenfolge sortiert ist (für den Laien ausgedrückt speichert es immer noch Strings). Sie können ein Element am Kopf (links) oder am Ende (rechts) einer Liste hinzufügen. Eine Liste kann bis zu ^32-1 Elemente enthalten (mehr als 4 Milliarden Elemente pro Liste).
Die Liste in Redis ist der LinkedList in Java sehr ähnlich. Die unterste Ebene ist eine verknüpfte Listenstruktur. Die Einfüge- und Löschvorgänge der Liste sind im Gegensatz zu der sehr schnell Einfüge- und Löschvorgänge der Array-Struktur erforderlich. Obwohl es sich scheinbar immer noch um eine Liste handelt, ist die zugrunde liegende Implementierung von Listen in Redis nicht auf einfache doppelt verknüpfte Listen beschränkt.
Wenn die Datenmenge klein ist, ist die zugrunde liegende Speicherstruktur ein kontinuierlicher Speicher, der als Ziplist (komprimierte Liste) bezeichnet wird. Sie speichert alle Elemente eng beieinander und weist einen kontinuierlichen Speicher zu wird zu einer Quicklist-Struktur (Schnellverknüpfte Liste).
Aber eine einfache verknüpfte Liste ist auch fehlerhaft. Die Zeiger „vorher“ und „nächst“ der verknüpften Liste belegen mehr Speicher, verschwenden Platz und erhöhen die Speicherfragmentierung. Seit Redis 3.2 verwendet Redis die hybride Datenstruktur Quicklist (Quick Linked List), die aus Ziplist und Linked List besteht.
Allgemeine Befehle
Befehl hinzufügen
lpush-Schlüsselwert
lpush key value
从左边插入元素(将一个或多个值插入到列表头部)
127.0.0.1:6379> lpush ids 1 (integer) 1 127.0.0.1:6379> lrange ids 0 -1 1) "1" 127.0.0.1:6379> lpush ids 2 (integer) 2 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1"
rpush key value
从右边插入元素(将一个或多个值插入到列表的尾部(最右边))
127.0.0.1:6379> rpush ids 3 (integer) 3 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1" 3) "3"
linsert key BEFORE|AFTER pivot value
向某个元素前/后插入元素,返回结果为当前列表长度,注意列表不存在或者指定元素不存在列表中时,都将不执行任何操作。
//元素3前插入0 127.0.0.1:6379> linsert ids before 3 0 (integer) 4 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1" 3) "0" 4) "3" //元素3后插入0 127.0.0.1:6379> linsert ids after 3 4 (integer) 5 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1" 3) "0" 4) "3" 5) "4"
查询命令
lrange key start end
获取列表中指定范围内的元素列表;若start值大于列表end值则返回空列表
如上已经展示过了
lindex key index
获取列表指定索引下标的元素
127.0.0.1:6379> lindex ids 0 "2" 127.0.0.1:6379> lindex ids -1 "4"
llen key
获取列表长度;列表不存在则返回0
127.0.0.1:6379> llen ids (integer) 5
弹出/删除命令
lpop key
从列表左侧弹出元素并返回头部元素
127.0.0.1:6379> lpop ids "2" 127.0.0.1:6379> lrange ids 0 -1 1) "1" 2) "0" 3) "3" 4) "4"
rpop key
从列表右侧弹出元素并返回尾部元素
127.0.0.1:6379> rpop ids "4" 127.0.0.1:6379> lrange ids 0 -1 1) "1" 2) "0" 3) "3"
lrem key count value
从列表中找到等于value的元素进行删除,根据count的不同分为三种情况:
count > 0,从表头开始向表尾,移除数量为count个元素;
count < 0,从表尾开始向表头,移除数量为count的绝对值个元素;
count = 0,移除表中所有与 value 相等的值
127.0.0.1:6379> lrem ids 0 3 (integer) 1 127.0.0.1:6379> lrange ids 0 -1 1) "1" 2) "0"
ltrim key start end
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
127.0.0.1:6379> ltrim ids 0 0 OK 127.0.0.1:6379> lrange ids 0 -1 1) "1"
修改命令
lset key index value
Elemente von links einfügen (einen oder mehrere Werte in den Kopf der Liste einfügen)
127.0.0.1:6379> lset ids 0 0 OK 127.0.0.1:6379> lrange ids 0 -1 1) "0"
rpush-Schlüsselwert
Fügen Sie Elemente von rechts ein (fügen Sie einen oder mehrere Werte am Ende (ganz rechts) der Liste ein)
rrreee
linsert-Schlüssel VOR|NACH Pivot-Wert
Weiterleiten an ein Element / Nach dem Einfügen eines Elements ist das Rückgabeergebnis die aktuelle Listenlänge. Beachten Sie, dass keine Operation ausgeführt wird, wenn die Liste nicht vorhanden ist oder das angegebene Element nicht in der Liste vorhanden ist.
rrreee
Abfragebefehllrange key start end
Fügen Sie ein Element von der rechten Seite der Liste ein und geben Sie das Endelement zurückrrreee
lrem key count value
Suchen Sie das Element, das dem Wert entspricht, aus der Liste und löschen Sie es wird entsprechend der Anzahl in drei Situationen unterteilt: count > 0, beginnend vom Tabellenende bis zum Tabellenende, Anzahl der Elemente entfernen
rrreee
ltrim key start end
Eine Liste kürzen, also nur die Liste löschen Behalten Sie Elemente innerhalb des angegebenen Bereichs bei, und Elemente, die nicht innerhalb des angegebenen Bereichs liegen, werden gelöscht Wert: Popup-Befehl blockieren oder es wird ein Popup-Element gefunden
Entfernen und das letzte Element der Liste abrufen. Wenn die Liste keine Elemente enthält, wird die Liste blockiert, bis die Wartezeit abgelaufen ist oder ein Popup-Element gefunden wird Demonstration:
Sie können sehen, dass Fenster 1 und 2 nach der Ausführung blockiert wurden kein Element
🎜🎜🎜Fenster 3 führt den Zusatz aus: lpush ids 1 2 3 4 5 6🎜Sie können sehen, dass die entsprechenden Elemente sofort in Fenster 1 und 2 auftauchen: 🎜🎜🎜🎜🎜🎜🎜🎜Anwendung Szenario 🎜🎜Nachrichtenwarteschlange: lpop und rpush (oder umgekehrt lpush und rpop) können die Warteschlangenfunktion realisieren 🎜🎜 Like-Liste, Kommentarliste und Rangliste im Freundeskreis: lpush-Befehl und lrange-Befehl können die Funktion des realisieren Neueste Liste, jedes Mal über den Befehl lpush Fügen Sie neue Elemente in die Liste ein und lesen Sie dann die neueste Elementliste über den Befehl lrange. 🎜Das obige ist der detaillierte Inhalt vonAnalyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

So löschen Sie Redis -Daten: Verwenden Sie den Befehl Flushall, um alle Schlüsselwerte zu löschen. Verwenden Sie den Befehl flushdb, um den Schlüsselwert der aktuell ausgewählten Datenbank zu löschen. Verwenden Sie SELECT, um Datenbanken zu wechseln, und löschen Sie dann FlushDB, um mehrere Datenbanken zu löschen. Verwenden Sie den Befehl del, um einen bestimmten Schlüssel zu löschen. Verwenden Sie das Redis-Cli-Tool, um die Daten zu löschen.

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

Um eine Warteschlange aus Redis zu lesen, müssen Sie den Warteschlangenname erhalten, die Elemente mit dem Befehl LPOP lesen und die leere Warteschlange verarbeiten. Die spezifischen Schritte sind wie folgt: Holen Sie sich den Warteschlangenname: Nennen Sie ihn mit dem Präfix von "Warteschlange:" wie "Warteschlangen: My-Queue". Verwenden Sie den Befehl LPOP: Wischen Sie das Element aus dem Kopf der Warteschlange aus und geben Sie seinen Wert zurück, z. B. die LPOP-Warteschlange: my-queue. Verarbeitung leerer Warteschlangen: Wenn die Warteschlange leer ist, gibt LPOP NIL zurück, und Sie können überprüfen, ob die Warteschlange existiert, bevor Sie das Element lesen.

Um die Operationen zu sperren, muss die Sperre durch den Befehl setNX erfasst werden und dann den Befehl Ablauf verwenden, um die Ablaufzeit festzulegen. Die spezifischen Schritte sind: (1) Verwenden Sie den Befehl setNX, um zu versuchen, ein Schlüsselwertpaar festzulegen; (2) Verwenden Sie den Befehl Ablauf, um die Ablaufzeit für die Sperre festzulegen. (3) Verwenden Sie den Befehl Del, um die Sperre zu löschen, wenn die Sperre nicht mehr benötigt wird.

Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

Redis unterstützt als Messing Middleware Modelle für Produktionsverbrauch, kann Nachrichten bestehen und eine zuverlässige Lieferung sicherstellen. Die Verwendung von Redis als Message Middleware ermöglicht eine geringe Latenz, zuverlässige und skalierbare Nachrichten.

Zu den Schritten zum Starten eines Redis -Servers gehören: Installieren von Redis gemäß dem Betriebssystem. Starten Sie den Redis-Dienst über Redis-Server (Linux/macOS) oder redis-server.exe (Windows). Verwenden Sie den Befehl redis-cli ping (linux/macOS) oder redis-cli.exe ping (Windows), um den Dienststatus zu überprüfen. Verwenden Sie einen Redis-Client wie Redis-Cli, Python oder Node.js, um auf den Server zuzugreifen.
