LPUSH
LPUSH key value [value …]
可用版本: >= 1.0.0
时间复杂度: O(1)
将一个或多个值
value
插入到列表
key
的表头,并且各个值
value
按从左到右的顺序依次插入。
演示
如果
key
不存在,一个空列表
key
会被创建并执行LPUSH操作。对空列表
key
执行命令
LPUSH key a b c
,列表的值将是
c b a
,等同于执行
LPUSH key a
、
LPUSH key b
和
LPUSH key c
三个命令。执行LPUSH命令后,会返回列表的长度。
当
key
存在但不是列表类型时,返回一个错误。
在
Redis 2.4
版本以前的LPUSH命令,都只接受单个
value
值。
LPUSHX
LPUSHX key value
可用版本: >= 2.2.0
时间复杂度: O(1)
当且仅当
key
存在并且是一个列表,才将值
value
插入到列表
key
的表头。
演示
和LPUSH命令不一样,当
key
不存在时, LPUSHX命令什么也不做。
当
key
存在但不是列表类型时, LPUSHX命令会报错。
LPUSHX命令执行之后,会返回列表的长度。
RPUSH
RPUSH key value [value …]
可用版本: >= 1.0.0
时间复杂度: O(1)
将一个或多个值
value
插入到列表
key
的表尾,并且各个值
value
按从左到右的顺序依次插入。
演示
如果
key
不存在,一个空列表
key
会被创建并执行RPUSH操作。对一个空列表
key
执行
RPUSH key a b c
,列表的值将为
a b c
,等同于执行命令
RPUSH key a
、
RPUSH key b
、
RPUSH key c
。执行RPUSH命令后,会返回表的长度。
当
key
存在但不是列表类型时,命令会返回一个错误。
RPUSHX
RPUSHX key value
可用版本: >= 2.2.0
时间复杂度: O(1)
当且仅当
key
存在并且是一个列表,才将值
value
插入到列表
key
的表尾。
演示
和RPUSH命令不一样,当
key
不存在时, RPUSHX命令什么也不做。
当
key
存在但不是列表类型时, RPUSHX命令会报错。
RPUSHX命令执行之后,会返回列表的长度。
LPOP
LPOP key
可用版本: >= 1.0.0
时间复杂度: O(1)
移除并返回列表
key
的表头元素。
演示
当
key
不存在时,LPOP命令会返回
(nil)
。
LPOP命令会返回列表的表头元素。
当
key
存在并且不是列表类型时,LPOP命令会报错。
RPOP
RPOP key
可用版本: >= 1.0.0
时间复杂度: O(1)
移除并返回列表
key
的表尾元素。
演示
当
key
不存在时,RPOP命令会返回
(nil)
。
RPOP命令会返回列表的表尾元素。
当
key
存在并且不是列表类型时,RPOP命令会报错。