Inhaltsverzeichnis
Einführung in die Liste
Allgemeine Befehle
Befehl hinzufügen
查询命令
弹出/删除命令
修改命令
rpush-Schlüsselwert
Sie können sehen, dass Fenster 1 und 2 nach der Ausführung blockiert wurden kein Element
Heim Datenbank Redis Analyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren Verwendung

Analyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren Verwendung

May 28, 2023 am 09:32 AM
redis list

    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üsselwertlpush 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"
    Nach dem Login kopieren

    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"
    Nach dem Login kopieren

    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"
    Nach dem Login kopieren

    查询命令

    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"
    Nach dem Login kopieren

    llen key
    获取列表长度;列表不存在则返回0

    127.0.0.1:6379> llen ids
    (integer) 5
    Nach dem Login kopieren

    弹出/删除命令

    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"
    Nach dem Login kopieren

    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"
    Nach dem Login kopieren

    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"
    Nach dem Login kopieren

    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"
    Nach dem Login kopieren

    修改命令

    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"
    Nach dem Login kopieren

    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
    Abfragebefehl

    lrange key start end

    Ruft die Liste der Elemente innerhalb des angegebenen Bereichs in der Liste ab; wenn der Startwert größer als der Endwert der Liste ist, wird eine leere Liste erstellt zurückgegeben werden. Wie oben gezeigt. Wenn die Liste nicht existiert, geben Sie 0 zurück key

    Fügen Sie ein Element von der rechten Seite der Liste ein und geben Sie das Endelement zurückAnalyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren Verwendungrrreee

    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: Analyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren Verwendungcount > 0, beginnend vom Tabellenende bis zum Tabellenende, Anzahl der Elemente entfernen

    count count = 0, alle Werte entfernen, die dem Wert in der Tabelle entsprechen
    rrreeeltrim 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 gefundenAnalyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren Verwendung

    brpop-Taste [Taste …] Timeout

    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 Analyse der Befehle im Zusammenhang mit dem Listendatentyp von Redis und deren VerwendungDemonstration:

    Öffnen Sie drei Reids-Verbindungsfenster, das erste führt blpop aus, das zweite führt brpop aus und das dritte führt add aus:

    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!

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    AI Hentai Generator

    AI Hentai Generator

    Erstellen Sie kostenlos Ai Hentai.

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

    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 So löschen Sie Redis -Daten Apr 10, 2025 pm 10:06 PM

    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.

    So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

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

    So lesen Sie Redis -Warteschlange So lesen Sie Redis -Warteschlange Apr 10, 2025 pm 10:12 PM

    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.

    So verwenden Sie Redis Lock So verwenden Sie Redis Lock Apr 10, 2025 pm 08:39 PM

    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.

    So lesen Sie den Quellcode von Redis So lesen Sie den Quellcode von Redis Apr 10, 2025 pm 08:27 PM

    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.

    So erstellen Sie Message Middleware für Redis So erstellen Sie Message Middleware für Redis Apr 10, 2025 pm 07:51 PM

    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.

    So starten Sie den Server mit Redis So starten Sie den Server mit Redis Apr 10, 2025 pm 08:12 PM

    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.

    See all articles