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 !
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视频教程】
[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"
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"
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"
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
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"
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"
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"
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"
[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"
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"
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秒
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!