LPUSH
将一个或多个值 value 插入到列表 key 的表头
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。
如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。
当 key 存在但不是列表类型时,返回一个错误。
127.0.0.1:6379> lpush languages python
(integer) 1
127.0.0.1:6379> lpush languages python # 列表允许重复元素
(integer) 2
127.0.0.1:6379> lrange languages 0 -1
1) "python"
2) "python"
127.0.0.1:6379> lpush mylist a b c d
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
LPUSHX
将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。
127.0.0.1:6379> llen greep
(integer) 0
127.0.0.1:6379> lpushx greet "hello"
(integer) 0
127.0.0.1:6379> lpush greet "hello"
(integer) 1
127.0.0.1:6379> lpushx greet "goof morning"
(integer) 2
127.0.0.1:6379> lrange greet 0 -1
1) "goof morning"
2) "hello"
RPUSH
将一个或多个值 value 插入到列表 key 的表尾(最右边)。
如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a 、 RPUSH mylist b 、 RPUSH mylist c 。
如果 key 不存在,一个空列表会被创建并执行 RPUSH 操作。
当 key 存在但不是列表类型时,返回一个错误。
127.0.0.1:6379> rpush languages c
(integer) 3
127.0.0.1:6379> lrange languages 0 -1
1) "python"
2) "python"
3) "c"
127.0.0.1:6379> rpush languages c
(integer) 4
127.0.0.1:6379> lrange languages 0 -1
1) "python"
2) "python"
3) "c"
4) "c"
RPUSHX
将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。
LPOP
127.0.0.1:6379> llen course
(integer) 0
127.0.0.1:6379> rpush course algorithm001
(integer) 1
127.0.0.1:6379> rpush course c++101
(integer) 2
127.0.0.1:6379> lrange course 0 -1
1) "algorithm001"
2) "c++101"
127.0.0.1:6379> lpop course
"algorithm001"
127.0.0.1:6379> lrange course 0 -1
1) "c++101"
RPOP
移除并返回列表 key 的尾元素。
RPOPLPUSH
- 将列表
source中的最后一个元素(尾元素)弹出,并返回给客户端。 - 将
source弹出的元素插入到列表destination,作为destination列表的的头元素。
LREM
根据参数 count 的值,移除列表中与参数 value 相等的元素。
count 的值可以是以下几种:
count > 0: 从表头开始向表尾搜索,移除与value相等的元素,数量为count。count < 0: 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。count = 0: 移除表中所有与value相等的值。
127.0.0.1:6379> lpush greet "morning"
(integer) 3
127.0.0.1:6379> lpush greet "hello"
(integer) 4
127.0.0.1:6379> lpush greet "morning"
(integer) 5
127.0.0.1:6379> lpush greet "hello"
(integer) 6
127.0.0.1:6379> lpush greet "morning"
(integer) 7
127.0.0.1:6379> lrange greet 0 -1
1) "morning"
2) "hello"
3) "morning"
4) "hello"
5) "morning"
6) "goof morning"
7) "hello"
127.0.0.1:6379> lrem greet 2 morning
(integer) 2
127.0.0.1:6379> lrange greet 0 -1
1) "hello"
2) "hello"
3) "morning"
4) "goof morning"
5) "hello"
LLEN
返回列表 key 的长度。
如果 key 不存在,则 key 被解释为一个空列表,返回 0 .
如果 key 不是列表类型,返回一个错误。
127.0.0.1:6379> lrange greet 0 -1
1) "hello"
2) "hello"
3) "morning"
4) "goof morning"
5) "hello"
127.0.0.1:6379> llen greet
(integer) 5
LINDEX
返回列表 key 中,下标为 index 的元素。
下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
如果 key 不是列表类型,返回一个错误。
127.0.0.1:6379> lrange greet 0 -1
1) "hello"
2) "hello"
3) "morning"
4) "goof morning"
5) "hello"
127.0.0.1:6379> llen greet
(integer) 5
127.0.0.1:6379> lindex greet 0
"hello"
127.0.0.1:6379> lindex greet 1
"hello"
127.0.0.1:6379> lindex greet 2
"morning"
LINSERT
将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。
当 pivot 不存在于列表 key 时,不执行任何操作。
当 key 不存在时, key 被视为空列表,不执行任何操作。
如果 key 不是列表类型,返回一个错误。
127.0.0.1:6379> lrange mylist 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> linsert mylist before b nihao
(integer) 5
127.0.0.1:6379> lrange mylist 0 -1
1) "d"
2) "c"
3) "nihao"
4) "b"
5) "a"
127.0.0.1:6379> linsert mylist after b hello
(integer) 6
127.0.0.1:6379> lrange mylist 0 -1
1) "d"
2) "c"
3) "nihao"
4) "b"
5) "hello"
6) "a"
LSET
将列表 key 下标为 index 的元素的值设置为 value 。
当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。
127.0.0.1:6379> lrange mylist 0 -1
1) "d"
2) "c"
3) "nihao"
4) "b"
5) "hello"
6) "a"
127.0.0.1:6379> lset mylist 0 h
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "h"
2) "c"
3) "nihao"
4) "b"
5) "hello"
6) "a"
LRANGE
返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。
下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
LTRIM
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。
下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。
你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
当 key 不是列表类型时,返回一个错误。
127.0.0.1:6379> lrange mylist 0 -1
1) "h"
2) "c"
3) "nihao"
4) "b"
5) "hello"
6) "a"
127.0.0.1:6379> ltrim mylist 0 4
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "h"
2) "c"
3) "nihao"
4) "b"
5) "hello"