Redis存储List类型的数据,就是在Map中存储List集合
List类型数据存储
存储数据
往List的左边(首部)添加元素:lpush key 元素 元素........
往List的右边边(尾部)添加元素:rpush key 元素 元素........
127.0.0.1:6379[2]> lpush list:001 1 2 3
(integer) 3
127.0.0.1:6379[2]> rpush list:001 4 5 6
(integer) 6
获取范围数据
获取指定范围的数据:lrange key 开始下标 结束下标
小标-1就是代表最后一个元素
127.0.0.1:6379[2]> lrange list:001 1 4
1) "2"
2) "1"
3) "4"
4) "5"
127.0.0.1:6379[2]> lrange list:001 0 -1
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
6) "6"
删除数据
从List的左边(首部)删除元素:lpop key 元素
从List的右边(首部)删除元素:rpop key 元素
127.0.0.1:6379[2]> lrange list:001 0 -1
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379[2]> lpop list:001
"3"
127.0.0.1:6379[2]> rpop list:001
"6"
127.0.0.1:6379[2]> lrange list:001 0 -1
1) "2"
2) "1"
3) "4"
4) "5"
删除指定元素
lrem key count 元素的值
当count>0时, LREM会从列表左边开始删除遇到的第一个指定元素
当count<0时, LREM会从列表后边开始删除遇到的第一个指定元素
当count=0时, LREM删除所有值为value的元素
127.0.0.1:6379[2]> lrem list:001 1 5
(integer) 1
127.0.0.1:6379[2]> lrem list:001 -1 5
(integer) 1
127.0.0.1:6379[2]> lrem list:001 0 9
(integer) 2
获取指定位置的元素
lindex key 下标
127.0.0.1:6379[2]> lindex list:001 0
"7"
对指定位置进行赋值
lset key 小标 元素值
127.0.0.1:6379[2]> lset list:001 -1 11
OK
向指定元素前后添加指定的值
linsert key before/after 指定元素的值 要添加的值
当指定元素有多个时,从左开始遇到的第一个元素为准
127.0.0.1:6379[2]> linsert list:001 before 11 12
(integer) 9
127.0.0.1:6379[2]> linsert list:001 after 11 12
(integer) 10
截取指定范围的元素
ltrim key 开始下标 结束下标
127.0.0.1:6379[2]> lrange list:001 0 -1
1) "7"
2) "8"
3) "2"
4) "1"
5) "4"
6) "5"
7) "8"
8) "12"
9) "11"
10) "12"
127.0.0.1:6379[2]> ltrim list:001 0 7
OK
127.0.0.1:6379[2]> lrange list:001 0 -1
1) "7"
2) "8"
3) "2"
4) "1"
5) "4"
6) "5"
7) "8"
8) "12"
将元素从一个列表转移到另一个列表中
rpoplpush key 新的key 将指定列表中右边的第一个元素移动到新列表
127.0.0.1:6379[2]> rpoplpush list:001 list:002
"12"
127.0.0.1:6379[2]> lrange list:002 0 -1
1) "12"