列表(list)类型用来存储有序的字符串,每个字符串称为元素,一个列表最多保存2的32次幂-1个元素。
列表类型的两个特点
- 列表的元素时有序的
- 列表中的元素可以重复
添加列表list
从右边添加元素(rpush key element [element...])
127.0.0.1:6379> rpush list thr two one
(integer) 3
127.0.0.1:6379> lrange list 0 -1 #(lrange key 0 -1)从左到右获取元素
1) "thr"
2) "two"
3) "one"
从左边添加元素(lpush key element [element...])
127.0.0.1:6379> lpush list k t
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "t"
2) "k"
3) "thr"
4) "two"
5) "one"
向指定元素前或者后插入元素(linsert key before|after element value)
127.0.0.1:6379> linsert list after k h
(integer) 6
127.0.0.1:6379> linsert list before k l
(integer) 7
127.0.0.1:6379> lrange list 0 -1
1) "t"
2) "l"
3) "k"
4) "h"
5) "thr"
6) "two"
7) "one"
列表查询操作
获取指定索引范围内的元素列表(lrange key start end)
127.0.0.1:6379> lrange list 0 -1
1) "t"
2) "l"
3) "k"
4) "h"
5) "thr"
6) "two"
7) "one"
127.0.0.1:6379> lrange list 1 3
1) "l"
2) "k"
3) "h"
获取列表索引下标的值(lindex key index)
127.0.0.1:6379> lindex list 2
"k"
获取列表长度(llen key)
127.0.0.1:6379> llen list
(integer) 7
列表删除操作
删除指定列表元素(lrem key count value)
- count >0 从左到右删除元素,最多删除count个元素
- count <0 从右到左删除元素,最多删除|count|个元素
- count =0 删除所有等于value的元素
列表从左侧弹出并删除元素(lpop key)
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "new"
3) "a"
4) "b"
5) "c"
127.0.0.1:6379> lpop list
"two"
127.0.0.1:6379> lrange list 0 -1
1) "new"
2) "a"
3) "b"
4) "c"
列表从右侧弹出并删除元素(rpop key)
127.0.0.1:6379> lrange list 0 -1
1) "new"
2) "a"
3) "b"
4) "c"
127.0.0.1:6379> rpop list
"c"
127.0.0.1:6379> lrange list 0 -1
1) "new"
2) "a"
3) "b"
127.0.0.1:6379> lrange list 0 -1
1) "k"
2) "t"
3) "l"
4) "k"
5) "h"
6) "thr"
7) "two"
8) "one"
9) "t"
127.0.0.1:6379> lrem list 1 t
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "k"
2) "l"
3) "k"
4) "h"
5) "thr"
6) "two"
7) "one"
8) "t"
127.0.0.1:6379> lrem list 0 k
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "l"
2) "h"
3) "thr"
4) "two"
5) "one"
6) "t"
127.0.0.1:6379> lrem list -1 one
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "l"
2) "h"
3) "thr"
4) "two"
5) "t"
列表通过索引删除列表元素(ltrim key start end)
127.0.0.1:6379> ltrim list 1 4
OK
127.0.0.1:6379> lrange list 0 -1
1) "h"
2) "thr"
3) "two"
4) "t"
127.0.0.1:6379> ltrim list 2 4
OK
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "t"
修改列表指定索引的元素(lset key index value)
127.0.0.1:6379> lset list 1 new
OK
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "new"
列表阻塞操作
blpop key [key ...] timeout
brpop key [key ...] timeout