1、List概念
(1)单键多值
(2)Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
(3)它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。
2、List基本命令
(1)从左边/右边插入一个或多个值
lpush/rpush <key> <value1> <value2> <value3> ....
127.0.0.1:6379[2]> lpush k14 v1 v2 v3
(integer) 3
(2)从左边/右边吐出一个值。
值在键在,值光键亡。
lpop/rpop <key>
127.0.0.1:6379[2]> lpush k14 v1 v2 v3
(integer) 3
127.0.0.1:6379[2]> rpop k14
"v1"
127.0.0.1:6379[2]> rpop k14
"v2"
127.0.0.1:6379[2]> rpop k14
"v3"
127.0.0.1:6379[2]> rpop k14
(nil)
(3)从<key1>列表右边吐出一个值,插到<key2>列表左边
rpoplpush <key1> <key2>
127.0.0.1:6379[2]> lpush k15 v1 v2 v3 v4 v5 v6
(integer) 6
127.0.0.1:6379[2]> rpoplpush k15 k16
"v1"
(4)按照索引下标获得元素(从左到右) 范围
lrange <key> <index><start><stop>
127.0.0.1:6379[2]> lrange k15 2 3
1) "v4"
2) "v3"
127.0.0.1:6379[2]> lrange k15 2 -1
1) "v4"
2) "v3"
3) "v2"
127.0.0.1:6379[2]> lrange k15 0 -1
1) "v6"
2) "v5"
3) "v4"
4) "v3"
5) "v2"
(5)按照索引下标获得元素(从左到右) 单个值
lindex <key> <index>
127.0.0.1:6379[2]> lindex k15 3
"v3"
(6)获得列表长度
llen <key>
127.0.0.1:6379[2]> llen k15
(integer) 5
(7)在<value>的后面插入<newvalue> 插入值
linsert <key> before/after pivot <value>
127.0.0.1:6379[2]> lrange k15 0 -1
1) "v6"
2) "v5"
3) "v4"
4) "v3"
5) "v2"
127.0.0.1:6379[2]> linsert k15 before v2 hh
(integer) 6
127.0.0.1:6379[2]> lrange k15 0 -1
1) "v6"
2) "v5"
3) "v4"
4) "v3"
5) "hh"
6) "v2"
(8)从左边删除n个value(从左到右)
lrem <key> <count> <value>
127.0.0.1:6379[2]> lrange k15 0 -1
1) "v6"
2) "v5"
3) "hh"
4) "v4"
5) "v3"
6) "hh"
7) "hh"
8) "hh"
9) "v2"
127.0.0.1:6379[2]> lrem k15 2 hh
(integer) 2
127.0.0.1:6379[2]> lrange k15 0 -1
1) "v6"
2) "v5"
3) "v4"
4) "v3"
5) "hh"
6) "hh"
7) "v2"