峰Redis学习(4)Redis 数据结构(List的操作)

第四节:Redis 数据结构之List 类型  
存储list:
ArrayList使用数组方式
LinkedList使用双向链接方式
 
双向链接表中增加数据
双向链接表中删除数据
 
存储list常用命令
两端添加
两端弹出
扩展命令
 
下面是操作命令的例子:
 
lpush 方式从左边开始添加
127.0.0.1:6379> lpush list1 a b c d
(integer) 4
127.0.0.1:6379> lpush list1 1 2 3 4
(integer) 8
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "d"
6) "c"
7) "b"
8) "a"
127.0.0.1:6379> lrange list1 0 4
1) "4"
2) "3"
3) "2"
4) "1"
5) "d"

 

rpush 从右端开始添加(一般人比较习惯这种方式)
127.0.0.1:6379> rpush list2 a b c d
(integer) 4
127.0.0.1:6379> rpush list2 1 2 3 4
(integer) 8
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
8) "4"

 

rpop 右侧弹出集合元素
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
8) "4"
127.0.0.1:6379> rpop list2
"4"
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"

 

lpop 左侧弹出集合元素
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
127.0.0.1:6379> lpop list2
"a"
127.0.0.1:6379> lrange list2 0 -1
1) "b"
2) "c"
3) "d"
4) "1"
5) "2"
6) "3"

 

llen查看元素个数
127.0.0.1:6379> llen list2
(integer) 6

 

lpushx 集合头部插入元素
127.0.0.1:6379> lrange list2 0 -1
1) "b"
2) "c"
3) "d"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> lpushx list2 zhangsan
(integer) 7
127.0.0.1:6379> lrange list2 0 -1
1) "zhangsan"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"

 

rpushx 集合尾部插入元素
127.0.0.1:6379> lrange list2 0 -1
1) "zhangsan"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
127.0.0.1:6379> rpushx list2 lisi
(integer) 8
127.0.0.1:6379> lrange list2 0 -1
1) "zhangsan"
2) "b"
3) "c"
4) "d"
5) "1"
6) "2"
7) "3"
8) "lisi"

 

lpush集合头部插入多个元素
rpush集合尾部插入多个元素
127.0.0.1:6379> lrange list2 0 -1
1) "b"
2) "c"
3) "d"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> lpush list2 a1 a2
(integer) 8
127.0.0.1:6379> lrange list2 0 -1
1) "a2"
2) "a1"
3) "b"
4) "c"
5) "d"
6) "1"
7) "2"
8) "3"
127.0.0.1:6379> lrange list2 0 -1
1) "b"
2) "c"
3) "d"
4) "1"
5) "2"
6) "3"
127.0.0.1:6379> rpush list2 zhangsan lisi
(integer) 8
127.0.0.1:6379> lrange list2 0 -1
1) "b"
2) "c"
3) "d"
4) "1"
5) "2"
6) "3"
7) "zhangsan"
8) "lisi"

 

lrem 从指定方向删除指定个数的指定元素
127.0.0.1:6379> lpush list4 1 3 2 3 2 1 2 1 3
(integer) 9
127.0.0.1:6379> lrange list4 0 -1
1) "3"
2) "1"
3) "2"
4) "1"
5) "2"
6) "3"
7) "2"
8) "3"
9) "1"
从左边开始删除2个1
127.0.0.1:6379> lrem list4 2 1
(integer) 2
127.0.0.1:6379> lrange list4 0 -1
1) "3"
2) "2"
3) "2"
4) "3"
5) "2"
6) "3"
7) "1"
从右边开始删除2个3
127.0.0.1:6379> lrem list4 -2 3
(integer) 2
127.0.0.1:6379> lrange list4 0 -1
1) "3"
2) "2"
3) "2"
4) "2"
5) "1"
删除所有2
127.0.0.1:6379> lrem list4 0 2
(integer) 3
127.0.0.1:6379> lrange list4 0 -1
1) "3"
2) "1"

 

lset 设置集合指定索引的值
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "d"
6) "c"
7) "b"
8) "a"
127.0.0.1:6379> lset list1 3 xxxx
OK
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "xxxx"
5) "d"
6) "c"
7) "b"
8) "a"

 

linsert 在集合里插入指定元素
在xxxx元素之前插入aa
127.0.0.1:6379> linsert list1 before xxxx aa
(integer) 9
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "aa"
5) "xxxx"
6) "d"
7) "c"
8) "b"
9) "a"
在xxxx元素之后插入bb
127.0.0.1:6379> linsert list1 after xxxx bb
(integer) 10
127.0.0.1:6379> lrange list1 0 -1
 1) "4"
 2) "3"
 3) "2"
 4) "aa"
 5) "xxxx"
 6) "bb"
 7) "d"
 8) "c"
 9) "b"
10) "a"

 

rpoplpush 把A集合尾部元素弹出并插入到B集合头部
127.0.0.1:6379> rpush list5 a b c
(integer) 3
127.0.0.1:6379> rpush list6 1 2 3
(integer) 3
127.0.0.1:6379> rpoplpush list5 list6
"c"
127.0.0.1:6379> lrange list5 0 -1
1) "a"
2) "b"
127.0.0.1:6379> lrange list6 0 -1
1) "c"
2) "1"
3) "2"
4) "3"

 

转载于:https://www.cnblogs.com/tenWood/p/8684843.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值