Nosql之Redis: list数据类型及操作命令
list类据类型及操作命令 一:概述 List类型是按照插入顺序排序的字符串链表。 二:相关操作命令 1: lpush 描述:从list头部添加一个元素.如果key不存在则先创建一个空链表,再将数据从头部插入. 命令格式: lpush key value [value...] 返回值:插入后链表中元素的
list类据类型及操作命令
一:概述
List类型是按照插入顺序排序的字符串链表。
二:相关操作命令
1: lpush
描述:从list头部添加一个元素.如果key不存在则先创建一个空链表,再将数据从头部插入.
命令格式: lpush key value [value...]
返回值:插入后链表中元素的数量。
时间复杂度: O(1)
操作如下:
redis 127.0.0.1:6379> lpush user_list v_1
(integer) 1
redis 127.0.0.1:6379> lrange user_list 0 2
1) “v_1″
redis 127.0.0.1:6379> lpush user_list v_1 v_2 v_3
(integer) 4
redis 127.0.0.1:6379> lrange user_list 0 6
1) “v_3″
2) “v_2″
3) “v_1″
4) “v_1″
2: lpushx
描述:当Key存在时,该命令才会在其所关联的List Value的头部插入参数中给出的Value,否则将不会有任何操作发生。
返回值:插入链表中元素的数量.
时间复杂度: O(1)
操作如下:
redis 127.0.0.1:6379> lpushx user_list_1 aa
(integer) 0
redis 127.0.0.1:6379> lrange user_list_1 0 6
(empty list or set)
redis 127.0.0.1:6379> lpushx user_list v_4
(integer) 5
redis 127.0.0.1:6379> lrange user_list 0 8
1) “v_4″
2) “v_3″
3) “v_2″
4) “v_1″
5) “v_1″
3:lrange
描述:从自定范围内返回list中元素.0表示链表头部的第一个元素。其中start的值也可以为负值,-1将表示链表中的最后一个元素,即尾部元素,-2表示倒数第二个并以此类推。
返回值:返回指定范围内元素列表.
时间复杂度:O(S+N) S为start参数表示的偏移量,N表示元素的数量。
语法格式: lrange key start stop
操作如下:
redis 127.0.0.1:6379> lrange user_list 0 8
1) “v_4″
2) “v_3″
3) “v_2″
4) “v_1″
5) “v_1″
redis 127.0.0.1:6379> lrange user_list -2 -1
1) “v_1″
2) “v_1″
redis 127.0.0.1:6379>
4: lpop
描述:返回并弹出指定Key关联的链表中的第一个元素,即头部元素,。如果该Key不存,返回nilr.
返回值:返回头部元素.
时间复杂度:O(1)
操作如下:
redis 127.0.0.1:6379> lpop user_list
“v_4″
5:llen
描述:获取链表中元素的数量,如果该Key不存在,则返回0.不是list类型KEY时,则报错.
时间复杂度: O(1)
操作如下:
redis 127.0.0.1:6379> llen user_list
(integer) 4
redis 127.0.0.1:6379> llen user_list1
(integer) 0
redis 127.0.0.1:6379> llen name
(error) ERR Operation against a key holding the wrong kind of value
6:lrem
描述:从key对应的list中删除n个和value相同的元素(n
时间复杂度:O(N) N表示链表中元素的数量
返回值:返回被删除元素的个数
操作命令如下:
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v_3″
2) “v_2″
3) “v_1″
4) “v_1″
redis 127.0.0.1:6379> lrem user_list 2 v_1
(integer) 2
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v_3″
2) “v_2″
7: lset
描述:? 更新某个位置元素的值,如果索引值Index超出了链表中元素的数量范围,该命令将返回相关的错误信息。
时间复杂度:O(N) N表示链表中元素的数量 注:但是设定头部或尾部的元素时,其时间复杂度为O(1)
操作命令如下:
redis 127.0.0.1:6379> lset user_list 3 val
(error) ERR index out of range
redis 127.0.0.1:6379> lset user_list 1 vv
OK
redis 127.0.0.1:6379> lrange user_list 0 3
1) “v_3″
2) “vv”
8:lindex
描述:获取list中指定元素.
时间复杂度: O(N) 注:对于头部或尾部元素,其时间复杂度为O(1)。
返回值:返回请求的元素,如果index超出范围,则返回nil。
操作命令如下:
redis 127.0.0.1:6379> lindex user_list 8
(nil)
redis 127.0.0.1:6379> lindex user_list 0
“v_3″
9: ltrim
描述: 裁剪一个 List 到指定范围
时间复杂度:O(N) N:被删除的元素数量
操作命令如下:
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v9″
2) “v7″
3) “v6″
4) “v5″
5) “v_3″
6) “vv”
redis 127.0.0.1:6379> ltrim user_list 0 3
OK
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v9″
2) “v7″
3) “v6″
4) “v5″
10:linsert
描述:在list特定位置前或后面添加元素
语法格式:LINSERT key BEFORE|AFTER pivot value
时间复杂度:O(N) N表示在找到该元素pivot之前需要遍历的元素数量
返回值:成功插入后链表中元素的数量,如果没有找到pivot,返回-1,如果key不存在,返回0。
操作如下:
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v9″
2) “v7″
3) “v6″
4) “v5″
redis 127.0.0.1:6379> linsert user_list before v9 v0
(integer) 5
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v0″
2) “v9″
3) “v7″
4) “v6″
5) “v5″
redis 127.0.0.1:6379> linsert user_list after v9 v11
(integer) 6
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v0″
2) “v9″
3) “v11″
4) “v7″
5) “v6″
6) “v5″
redis 127.0.0.1:6379>
11: rpush
描述:往list尾部压入元素
时间复杂度: O(1)
语法格式:RPUSH key value [value ...]
返回值:插入后的元素数量
操作命令如下:
redis 127.0.0.1:6379> rpush user_list v12 v13
(integer) 8
redis 127.0.0.1:6379> lrange user_list 0 10
1) “v0″
2) “v9″
3) “v11″
4) “v7″
5) “v6″
6) “v5″
7) “v12″
“v13″
12: rpushx
描述:当key存时,往list尾部压入元素,不存在没有操作
时间复杂度: O(1)
返回值:插入后的元素数量
13: rpop
描述:弹出尾部元素.如果该Key不存,返回nil。
时间复杂度: O(1)
10: rpoplpush
描述:弹出 (源list)中最后一个元素并将其压入 (目标list)
时间复杂度: O(1)
返回值:返回弹出和插入的元素。
操作命令如下:
redis 127.0.0.1:6379> rpoplpush user_list user_list_1
“v13″
redis 127.0.0.1:6379> lrange user_list_1 0 2
1) “v13″

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

Redis verwendet Hash -Tabellen, um Daten zu speichern und unterstützt Datenstrukturen wie Zeichenfolgen, Listen, Hash -Tabellen, Sammlungen und geordnete Sammlungen. Ernähren sich weiterhin über Daten über Snapshots (RDB) und appendiert Mechanismen nur Schreibmechanismen. Redis verwendet die Master-Slave-Replikation, um die Datenverfügbarkeit zu verbessern. Redis verwendet eine Ereignisschleife mit einer Thread, um Verbindungen und Befehle zu verarbeiten, um die Datenatomizität und Konsistenz zu gewährleisten. Redis legt die Ablaufzeit für den Schlüssel fest und verwendet den faulen Löschmechanismus, um den Ablaufschlüssel zu löschen.

Um alle Schlüssel in Redis anzuzeigen, gibt es drei Möglichkeiten: Verwenden Sie den Befehl keys, um alle Schlüssel zurückzugeben, die dem angegebenen Muster übereinstimmen. Verwenden Sie den Befehl scan, um über die Schlüssel zu iterieren und eine Reihe von Schlüssel zurückzugeben. Verwenden Sie den Befehl Info, um die Gesamtzahl der Schlüssel zu erhalten.

Um die Redis -Versionsnummer anzuzeigen, können Sie die folgenden drei Methoden verwenden: (1) Geben Sie den Info -Befehl ein, (2) Starten Sie den Server mit der Option --version und (3) die Konfigurationsdatei anzeigen.

Schritte zur Lösung des Problems, das Redis-Server nicht finden kann: Überprüfen Sie die Installation, um sicherzustellen, dass Redis korrekt installiert ist. Setzen Sie die Umgebungsvariablen Redis_host und Redis_port; Starten Sie den Redis-Server Redis-Server; Überprüfen Sie, ob der Server Redis-Cli Ping ausführt.

Redis bestellte Sets (ZSETs) werden verwendet, um bestellte Elemente und Sortieren nach zugehörigen Bewertungen zu speichern. Die Schritte zur Verwendung von ZSET umfassen: 1. Erstellen Sie ein Zset; 2. Fügen Sie ein Mitglied hinzu; 3.. Holen Sie sich eine Mitgliederbewertung; 4. Holen Sie sich eine Rangliste; 5. Holen Sie sich ein Mitglied in der Rangliste; 6. Ein Mitglied löschen; 7. Holen Sie sich die Anzahl der Elemente; 8. Holen Sie sich die Anzahl der Mitglieder im Score -Bereich.

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

Redis verwendet fünf Strategien, um die Einzigartigkeit von Schlüssel zu gewährleisten: 1. Namespace -Trennung; 2. Hash -Datenstruktur; 3.. Datenstruktur festlegen; 4. Sonderzeichen von Stringschlüssel; 5. Lua -Skriptüberprüfung. Die Auswahl spezifischer Strategien hängt von Datenorganisationen, Leistung und Skalierbarkeit ab.
