redis之List操作
List是一个字符串链表,left和right都可以插入添加
如果键不存在,创建新的列表
如果键已经存在,新增内容
如果键全部移除,对应的键也就消失了
链表的操作头尾效率都很高,但操作中间元素,效率就不行了
List先进后出:LPUSH list1 1 2 3 4 5 6
List先进先出:RPUSH list2 1 2 3 4 5 6
List查询:LRANGE list2 0 -1
127.0.0.1:6379[1]> LPUSH list1 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379[1]> LRANGE list1 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379[1]> RPUSH list2 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379[1]> LRANGE list2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379[1]>
List取出顶部:LPOP list1
List取出底部:RPOP list1
127.0.0.1:6379[1]> LRANGE list1 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379[1]> LPOP list1
"6"
127.0.0.1:6379[1]> RPOP list1
"1"
127.0.0.1:6379[1]>
List长度:LLEN list1
127.0.0.1:6379[1]> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379[1]> LLEN list1
(integer) 4
List删除2个1(RPUSH list3 1 1 1 1 2 2 2 2 3 3 3 3):LREM list3 2 1
127.0.0.1:6379[1]> RPUSH list3 1 1 1 1 2 2 2 2 3 3 3 3
(integer) 12
127.0.0.1:6379[1]> LREM list3 2 1
(integer) 2
127.0.0.1:6379[1]> LRANGE list3 0 -1
1) "1"
2) "1"
3) "2"
4) "2"
5) "2"
6) "2"
7) "3"
8) "3"
9) "3"
10) "3"
127.0.0.1:6379[1]>
List截取list1指定范围的值,再赋值给list1:LTRIM list1 1 2
127.0.0.1:6379[1]> LRANGE list3 0 -1
1) "1"
2) "1"
3) "2"
4) "2"
5) "2"
6) "2"
7) "3"
8) "3"
9) "3"
10) "3"
127.0.0.1:6379[1]> LTRIM list3 1 2
OK
127.0.0.1:6379[1]> LRANGE list3 0 -1
1) "1"
2) "2"
127.0.0.1:6379[1]>
List list1底出栈list2顶压栈:RPOPLPUSH list1 list2
127.0.0.1:6379[1]> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379[1]> LRANGE list2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379[1]> RPOPLPUSH list1 list2
"2"
127.0.0.1:6379[1]> LRANGE list1 0 -1
1) "5"
2) "4"
3) "3"
127.0.0.1:6379[1]> LRANGE list2 0 -1
1) "2"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
127.0.0.1:6379[1]>
List将下标为1的重新设置值xx:LSET list2 1 xx
127.0.0.1:6379[1]> LRANGE list2 0 -1
1) "2"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
127.0.0.1:6379[1]> LSET list2 1 xx
OK
127.0.0.1:6379[1]> LRANGE list2 0 -1
1) "2"
2) "xx"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
127.0.0.1:6379[1]>
List在list2的xx前面/后面添加值java:LINSERT list2 before/after xx java
127.0.0.1:6379[1]> LRANGE list2 0 -1
1) "2"
2) "xx"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
127.0.0.1:6379[1]> LINSERT list2 before xx java
(integer) 8
127.0.0.1:6379[1]> LINSERT list2 after xx java
(integer) 9
127.0.0.1:6379[1]> LRANGE list2 0 -1
1) "2"
2) "java"
3) "xx"
4) "java"
5) "2"
6) "3"
7) "4"
8) "5"
9) "6"
127.0.0.1:6379[1]>
系列文章链接:
redis配置文件介绍
redis启动验证及必备命令
redis字符串操作
redis之List操作
redis之Set操作
redis之Hash操作
redis之Zset操作
redis事务(伪事务)及watch监控
redis之发布订阅
redis持久化
redis主从复制