Maison > base de données > Redis > le corps du texte

Combat pratique : parlez de la commande list dans Redis à travers un exemple de code

青灯夜游
Libérer: 2021-12-13 09:58:20
avant
3988 Les gens l'ont consulté

Cet article vous présentera la commande list dans Redis et apprendra à utiliser la commande list à travers des exemples de code. J'espère qu'il vous sera utile !

Combat pratique : parlez de la commande list dans Redis à travers un exemple de code

structure de données de liste

Le type de liste est une structure liste chaînée à double extrémité, la capacité est de 2 à la puissance 32 moins 1 élément, soit plus de 4 milliards ; ses fonctions principales incluent le push, le pop, l'obtention d'éléments, etc. ; généralement utilisées dans pile, file d'attente, file d'attente de messages et d'autres scénarios. [Recommandations associées : Tutoriel vidéo Redis双端链表的结构,容量是2的32次方减1个元素,即40多亿个;其主要功能有push、pop、获取元素等;一般应用在栈、队列、消息队列等场景。【相关推荐:Redis视频教程

Redis list命令实战

[l/r]push-左/右添加元素

语法:[l/r]push key value [value ...]

以头插或尾插方式插入指定key队列中一个或多个元素

127.0.0.1:6379> lpush pushkey 1 2 3
(integer) 3
127.0.0.1:6379> lpush pushkey 4
(integer) 4
127.0.0.1:6379> rpush pushkey 5
(integer) 5
127.0.0.1:6379> lrange pushkey 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
Copier après la connexion

lrange-查询范围元素

语法: lrange key start stop

获取列表指定范围内的元素

127.0.0.1:6379> lpush products 1 2 3
(integer) 3
127.0.0.1:6379> lpush products 4 5 6
(integer) 6
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
Copier après la connexion

linsert-在某元素前后插入元素

语法:linsert key BEFORE|AFTER pivot value

在列表的元素前或者后插入元素

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379> linsert products before 5 a
(integer) 7
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> linsert products after a b
(integer) 8
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
Copier après la connexion

llen-获取长度

语法:llen key

获取列表长度

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> llen products
(integer) 8
Copier après la connexion

lindex-根据下标获取元素

语法:lindex key index

通过索引获取列表中的元素

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> lindex products 2
"b"
Copier après la connexion

lset-根据下标设置值

语法:lset key index value

通过索引设置列表元素的值

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> lset products 2 B
OK
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "B"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
Copier après la connexion

ltrim-截取元素

语法:ltrim key start end

截取队列指定区间的元素,其余元素都删除

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "B"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> ltrim products 0 3
OK
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "B"
4) "5"
Copier après la connexion

lrem-移除元素

语法:lrem key count value

移除列表元素

127.0.0.1:6379> lpush test a 1 a 2 a 3 a 4  5 6
(integer) 10
127.0.0.1:6379> lrange  test 0 -1
 1) "6"
 2) "5"
 3) "4"
 4) "a"
 5) "3"
 6) "a"
 7) "2"
 8) "a"
 9) "1"
10) "a"
127.0.0.1:6379> lrem test 3 a
(integer) 4
127.0.0.1:6379> lrange  test 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
7) "a"
Copier après la connexion

[l/r]pop-从左/右弹出元素

语法:[l/r]pop key

从队列的头或尾弹出节点元素(返回该元素并从队列中删除)

127.0.0.1:6379> lrange  test 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379> lpop test
"6"
127.0.0.1:6379> lrange  test 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpop test
"1"
127.0.0.1:6379> lrange  test 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
Copier après la connexion

rpoplpush-移除右元素添加到另一列表左

语法:rpoplpush source destination

移除列表的最后一个元素(右),并将该元素添加到另一个列表(左)并返回

127.0.0.1:6379> lpush src 1 2 3
(integer) 3
127.0.0.1:6379> lrange src 0 -1
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lpush dst a b c
(integer) 3
127.0.0.1:6379> lrange dst 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> rpoplpush src dst
"1"
127.0.0.1:6379> lrange src 0 -1
1) "3"
2) "2"
127.0.0.1:6379> lrange dst 0 -1
1) "1"
2) "c"
3) "b"
4) "a"
Copier après la connexion

b[l/r]pop-阻塞弹出左/右一个元素

语法: b[l/r]pop key1 [key2 ...] timeout

移出并获取列表的第一个或最后一个元素, 如果列表没有元素会阻塞列表直到等待超时发现]

Pratique des commandes de liste Redis

🎜🎜< span style="font-size: 16px;">[l/r]push-ajouter des éléments gauche/droite🎜🎜🎜Syntaxe : [l/r]push key value [value ...] 🎜🎜Insérez un ou plusieurs éléments dans la file d'attente de clés spécifiée par insertion de tête ou d'insertion de queue🎜
127.0.0.1:6379> lpush list1 1 2
(integer) 2
127.0.0.1:6379> lpush list2 a b
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "2"
2) "1"
127.0.0.1:6379> lrange list2 0 -1
1) "b"
2) "a"
127.0.0.1:6379> blpop list1 list2 10
1) "list1"   #弹出元素所属的列表
2) "2"       #弹出元素所属的值
127.0.0.1:6379> blpop list1 list2 10
1) "list1"
2) "1"
127.0.0.1:6379> blpop list1 list2 10
1) "list2"
2) "b"
127.0.0.1:6379> blpop list1 list2 10
1) "list2"
2) "a"
127.0.0.1:6379> blpop list1 list2 10
(nil)
(10.08s)  # 列表为空的时候,就等待超时10秒
Copier après la connexion
🎜🎜éléments de plage lrange-query🎜 🎜 🎜Syntaxe : lrange key start stop🎜🎜Obtenir des éléments dans la plage spécifiée de la liste🎜rrreee🎜🎜linsert-Insérer des éléments avant et après un element🎜🎜🎜Syntaxe : insérer la clé AVANT|APRÈS la valeur pivot🎜🎜Insérer des éléments avant ou après des éléments dans la liste🎜rrreee🎜🎜 llen-Obtenir la longueur🎜🎜🎜Syntaxe : llen key🎜🎜Obtenir la longueur de la liste🎜rrreee🎜🎜lindex- Basé sur l'élément d'indice🎜🎜🎜Syntaxe : index clé lindex🎜🎜Obtenez l'élément dans la liste par index🎜rrreee🎜🎜lset-selon la valeur d'index clé suivante🎜🎜🎜Syntaxe : lset key index value🎜🎜Définissez la valeur d'un élément de liste par index🎜rrreee🎜🎜ltrim -Intercepter les éléments🎜🎜🎜Syntaxe : ltrim key start end🎜🎜Intercepter les éléments dans la plage spécifiée de la file d'attente et supprimer le reste elements🎜rrreee🎜🎜lrem-remove elements🎜🎜🎜Syntaxe : lrem key count value🎜🎜Supprimer les éléments de la liste🎜rrreee🎜 🎜[l/r]éléments pop-pop de gauche/droite🎜🎜🎜Syntaxe : [l/r]touche pop 🎜🎜Pop des éléments de nœud de la tête ou de la queue de la file d'attente (renvoie l'élément et le supprime de la file d'attente)🎜rrreee🎜🎜rpoplpush - supprime le bon élément et ajoute-le vers une autre liste à gauche🎜🎜🎜Syntaxe : rpoplpush source destination🎜🎜supprime le dernier élément de la liste (à droite) et ajoute cet élément à une autre liste (à gauche) et renvoie 🎜rrreee🎜 🎜 b[l/r]pop-block faisant apparaître un élément à gauche/droite🎜🎜🎜Syntaxe : b[l/r]pop key1 [key2 ...] timeout🎜🎜Sortir et fusionner Récupérer le premier ou le dernier élément de la liste S'il n'y a aucun élément dans la liste, cela bloquer la liste jusqu'à ce que. il attend timeout ou trouve un élément contextuel. 🎜rrreee🎜Pour plus de connaissances sur la programmation, veuillez visiter : 🎜Introduction à la programmation🎜 ! ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!