Lists(列表)常用命令有:
一、增
127.0.0.1:6379> lpush list01 1 2 3 4 rr //向列表左侧添加5个数据
(integer) 5
127.0.0.1:6379> lrange list01 0 -1 // 查询出类表所有数据 从上到下索引是0, 1, 2 ...
1) "rr"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpush list02 0 1 2 3 4 //向列表左侧添加数据
(integer) 5
127.0.0.1:6379> lrange list02 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
二、删
127.0.0.1:6379> lpop list01 // 弹出最左侧数据, 每次弹出一个
"rr"
127.0.0.1:6379> rpop list02 // 弹出右侧数据, 每次弹出一个
"4"
127.0.0.1:6379> lrange list02 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> lrem list03 2 2 // LREM KEY_NAME COUNT VALUE 删除两个 2
(integer) 2
三、改
127.0.0.1:6379> lrange list01 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> lrange list02 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> rpoplpush list01 list02 //弹出list01的左边数据给列表list02
"2"
127.0.0.1:6379> lrange list02 0 -1
1) "2"
2) "0"
3) "1"
4) "2"
5) "3"
127.0.0.1:6379> lrange list01 0 -1
1) "5"
2) "4"
3) "3"
127.0.0.1:6379> lset list01 0 x // 设置索引0的值为x
OK
127.0.0.1:6379> lrange list01 0 -1
1) "x"
2) "4"
3) "3"
127.0.0.1:6379> linsert list01 before x y //在x前插入y
(integer) 4
127.0.0.1:6379> lrange list01 0 -1
1) "y"
2) "x"
3) "4"
4) "3"
127.0.0.1:6379> linsert list01 after x z //在x后插入y
(integer) 5
127.0.0.1:6379> lrange list01 0 -1
1) "7"
2) "6"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
8) "4"
9) "3"
10) "2"
11) "1"
127.0.0.1:6379> ltrim list01 2 5 //截取索引2 到 5的值 并重新赋值给列表
OK
127.0.0.1:6379> lrange list01 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
四、查
127.0.0.1:6379> lindex list02 1 // 输出索引1的值
"1"
127.0.0.1:6379> lindex list02 4
(nil)
127.0.0.1:6379> lindex list02 3
"3"
127.0.0.1:6379> llen list02 // 返回列表的长度
(integer) 4
五、性能总结
- 是一个字符串链表,left、right 都可以插入添加
- 如果键不存在, 创建新的链表
- 如果键已存在, 新增内容
- 链表的操作无论是头和尾效率都极高,但是假如是对中间元素进行操作, 效率就很惨淡了