lpush

从左边插入一个或多个值,新list默认为空

语法:lpush <key1> <value1> <value2> …… <value>

1
2
3
# 添加一个新的list键值对,从左边插入
127.0.0.1:6379> lpush k1 v1 v2 v3
(integer) 3

rpush

从右边插入一个或多个值,新list默认为空

语法:rpush <key1> <value1> <value2> …… <value>

1
2
3
# 添加一个新的list键值对,从右边插入
127.0.0.1:6379> rpush k2 v1 v2 v3
(integer) 3

lrange

取出key对应指定范围的list值

语法:lrange <key> <起始位置> <结束位置>(包含起始位置和结束位置)

如果起始位置=0,结束位置=-1,表示取出key对应的所有list元素值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 取出k1对应0~1范围的list元素值
127.0.0.1:6379> lrange k1 0 1
1) "v3"
2) "v2"
# 注意比较lpush和rpush的区别
# 取出k1对应的list所有元素值
127.0.0.1:6379> lrange k1 0 -1
1) "v3"
2) "v2"
3) "v1"
# 取出k2对应的list所有元素值
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "v2"
3) "v3"

lpop

从左边吐出一个值,返回值正是这个值

取出所有的元素后,这个键值对就不复存在

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 从左边吐出k1的一个值
127.0.0.1:6379> lpop k1
"v3"
# 取出k1对应的list所有元素值
127.0.0.1:6379> lrange k1 0 -1
1) "v2"
2) "v1"
# 从左边吐出k2的一个值
127.0.0.1:6379> lpop k2
"v1"
# 取出k2对应的list所有元素值
127.0.0.1:6379> lrange k2 0 -1
1) "v2"
2) "v3"

rpop

从右边吐出一个值,返回值正是这个值

取出所有的元素后,这个键值对就不复存在

1
2
3
4
5
6
7
8
9
10
11
12
# 从右边吐出k1的一个值
127.0.0.1:6379> rpop k1
"v1"
# 取出k1对应的list所有元素值
127.0.0.1:6379> lrange k1 0 -1
1) "v2"
# 从右边吐出k2的一个值
127.0.0.1:6379> rpop k2
"v3"
# 取出k2对应的list所有元素值
127.0.0.1:6379> lrange k2 0 -1
1) "v2"

rpoplpush

从key1的右边吐出一个值,插入到key2左边

语法:rpoplpush <list1> <list2>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 新增一个列表k3
127.0.0.1:6379> lpush k3 v1 v2 v3 v4
(integer) 4
# 新增一个列表k4
127.0.0.1:6379> lpush k4 v1 v2 v3
(integer) 3
# 将k3的v4放到k4的v1左边
127.0.0.1:6379> rpoplpush k3 k4
"v1"
# 查看k3的list所有元素
127.0.0.1:6379> lrange k3 0 -1
1) "v4"
2) "v3"
3) "v2"
# 查看k4的list所有元素
127.0.0.1:6379> lrange k4 0 -1
1) "v1"
2) "v3"
3) "v2"
4) "v1"

lindex

获取list索引对应的元素值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看k3的list所有元素
127.0.0.1:6379> lrange k3 0 -1
1) "v4"
2) "v3"
3) "v2"
# 获取k3中索引0对应的元素
127.0.0.1:6379> lindex k3 0
"v4"
# 获取k3中索引1对应的元素
127.0.0.1:6379> lindex k3 1
"v3"
# 获取k3中索引2对应的元素
127.0.0.1:6379> lindex k3 2
"v2"
# 获取k3中索引3对应的元素
127.0.0.1:6379> lindex k3 3
(nil)

llen

获取list中元素的个数

1
2
3
4
5
6
7
8
# 查看k3的list所有元素
127.0.0.1:6379> lrange k3 0 -1
1) "v4"
2) "v3"
3) "v2"
# 获取k3的元素个数
127.0.0.1:6379> llen k3
(integer) 3

linsert

往list指定位置插入元素值

语法:

  1. linsert <key> before <value> <newvalue>

    在键为key的list中值为value元素的前面插入newvalue

  2. linsert <key> after <value> <newvalue>

    在键为key的list中值为value元素的后面插入newvalue

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看k3的list所有元素
127.0.0.1:6379> lrange k3 0 -1
1) "v4"
2) "v3"
3) "v2"
# 在v3前插入beforev3
127.0.0.1:6379> linsert k3 before v3 beforev3
(integer) 4
# 在v3后插入afterv3
127.0.0.1:6379> linsert k3 after v3 afterv3
(integer) 5
# 查看k3的list所有元素
127.0.0.1:6379> lrange k3 0 -1
1) "v4"
2) "beforev3"
3) "v3"
4) "afterv3"
5) "v2"

lrem

从左边删除n个value

语法:lrem <key> <n> <value>

1
2
3
4
5
6
7
8
9
# 新建一个键为k5的list
127.0.0.1:6379> lpush k5 v1 v1 v1 v1
(integer) 4
# 在k5中从左边删除3个v1
127.0.0.1:6379> lrem k5 3 v1
(integer) 3
# 查看k5所有元素值
127.0.0.1:6379> lrange k5 0 -1
1) "v1"

lset

将指定索引index的值替换成value

语法:lset <key> <index> <value>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 新建一个键为k6的list
127.0.0.1:6379> lpush k6 v1 v2 v3 v4 v5
(integer) 5
# 查看k6所有元素
127.0.0.1:6379> lrange k6 0 -1
1) "v5"
2) "v4"
3) "v3"
4) "v2"
5) "v1"
# 将下标为2的元素替换成element
127.0.0.1:6379> lset k6 2 element
OK
# 查看k6所有元素
127.0.0.1:6379> lrange k6 0 -1
1) "v5"
2) "v4"
3) "element"
4) "v2"
5) "v1"