《redis入门看这系列就够了》第四章 redis的数据类型 - list

redis 第四章 redis的数据类型 - list
list 列表
常用的入门命令
1.lpush,rpush,lrange
📌lpush key x y z 从左侧设置key的列表值value为[x,y,z]
127.0.0.1:6379> lpush list1 1 2 3 3 4 5
(integer) 5
OK

📌rpush key x y z
从右侧设置key的列表值value为[x,y,z]
127.0.0.1:6379> lpush list2 1 2 3 3 4 5
(integer) 5
OK

📌range key start stop
获取键值为key的list列表,从start截取到stop
127.0.0.1:6379> lrange list1 0 -1 
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"

⭐有些同学是否觉得有疑问,为什么不是1,2,3,4,5,所以有图有真相,见下图
range key start stop

2.lpop,rpop
📌lpop key  从左侧弹出以key为键值的列表list第一个值
127.0.0.1:6379> lpush list1 1 2 3 4 5 
(integer) 5
127.0.0.1:6379> lpop list1 
"5"

📌rpop key  从右侧弹出以key为键值的列表list第一个值
127.0.0.1:6379> lpush list1 1 2 3 4 5 
(integer) 5
127.0.0.1:6379> rpop list1 
"1"

⭐有图有真相,见下图
lpop,rpop

3.lindex,llen,lrem ,ltrim
📌lpindex key index 获取键位key的列表list的下标为index的值
127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lpindex list1 1
(integer) 4

📌llen key 获取键位key的列表list的size大小
127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> llen list1 
(integer) 5

📌lrem key count value 删除键w为key的列表中的N个value
127.0.0.1:6379> lpush list1 1 1 2 2 3
(integer) 5
127.0.0.1:6379> lrem list1 2 2
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "3"
2) "1"
3) "1"

📌ltrim key start stop 截取键位key的列表中的下标以start开始到stop结束并再赋值给key值
127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> ltrim list1 0 2
1) "5"
2) "4"
3) "3"
4.rpoplpush
📌rpoplpush s d 将目标s的列表值从右侧弹出并复制给d,形成一个新键值
127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> rpoplpush list1 list2
"1"
127.0.0.1:6379> lrange list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> lrange list2 0 -1
1) "1"
5.lset
📌lset key index v 将key的列表值的下标为index的值替换为v
127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lset list1 0 2
OK
127.0.0.1:6379> lrange list1 0 -1
1) "2"
2) "4"
3) "3"
4) "2"
5) "1"
6.linsert
📌linsert key before/after v1 v2 将key的列表值为v1的后面或前面填入v2
127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 5
127.0.0.1:6379> linsert list1 after 2 0
(integer) 6
127.0.0.1:6379> lrange list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "0"
6) "1"

🎌 以下备注均参考周阳老师语录

list注意事项:
它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
此章到这里啦,我是JavaDog,欲知后事如何,请听下章分解
如果意犹未尽,快来JavaDog博客瞅瞅,你想要的都在里面😁

ea581I.gif
🔥 下章剧透,redis 第五章 redis的数据类型 - Set

🍆上章回顾,redis 第三章 redis的数据类型 - String

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaDog程序狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值