#############################################
所有的List命令以“L”开头
左插入:lpush
因为是从左边插入,第一个插入的数据,被推向左右边,然后,数据从左到右读取,所以,lrange遍历是three,two,one
127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
#############################################
右插入:rpush
使用右插入时,那么one就不是右边第一个了,right才是右边第一个
127.0.0.1:6379> rpush list right
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "right"
#############################################
左边移除:lpop
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "right"
127.0.0.1:6379> lpop list
"three"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
3) "right"
#############################################
右移除:rpop
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
3) "right"
127.0.0.1:6379> rpop list
"right"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
#############################################
获取某个list特定下标的值:lindex
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lindex list 1
"one"
127.0.0.1:6379> lindex list 0
"two"
#############################################
获取list的长度:llen
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> llen list
(integer) 2
#############################################
删除特定的值:lrem
lrem list 2 two:代表移除list里面的两个two
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "two"
3) "one"
127.0.0.1:6379> lrem list 2 two
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "one"
#############################################
截取list:ltrim。ltrim list 1 2:只保留序号为1和序号为2的元素。
127.0.0.1:6379> rpush list hello1
(integer) 1
127.0.0.1:6379> rpush list hello2
(integer) 2
127.0.0.1:6379> rpush list hello3
(integer) 3
127.0.0.1:6379> rpush list hello4
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "hello1"
2) "hello2"
3) "hello3"
4) "hello4"
127.0.0.1:6379> ltrim list 1 2
OK
127.0.0.1:6379> lrange list 0 -1
1) "hello2"
2) "hello3"
#############################################
移除并压入:rpoplpush
rpoplpush list otherList:把list的最右边的元素:hello0弹出,并压入了otherList中
127.0.0.1:6379> lpush list hello0
(integer) 1
127.0.0.1:6379> lpush list hello1
(integer) 2
127.0.0.1:6379> lpush list hello2
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "hello2"
2) "hello1"
3) "hello0"
127.0.0.1:6379> rpoplpush list otherList
"hello0"
127.0.0.1:6379> lrange list 0 -1
1) "hello2"
2) "hello1"
127.0.0.1:6379> lrange otherList 0 -1
1) "hello0"
#############################################
修改list的值:lset,将指定下标的值,修改成另一个值。如果不存在列表,或者不存在列表下标的值,就会报错。
127.0.0.1:6379> lpush list hello1
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "hello1"
127.0.0.1:6379> lset list 0 value1
OK
127.0.0.1:6379> lrange list 0 -1
1) "value1"
#############################################
在特定位置插入值:linsert
127.0.0.1:6379> rpush list hello
(integer) 1
127.0.0.1:6379> rpush list world
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "hello"
2) "world"
127.0.0.1:6379> linsert list before world other
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "hello"
2) "other"
3) "world"
127.0.0.1:6379> linsert list after world new
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "hello"
2) "other"
3) "world"
4) "new"