Redis-List命令整合
命令
|
版本
|
复杂度
|
格式
|
返回值
|
作用
|
备注
|
lpush
|
1.0.0
|
O(1)
|
lpush key value [value ...]
|
修改之后的列表长度
|
批量插入value到key的表头(左)
|
2.4之后才支持批量插入
|
lpushx
|
2.2.0
|
O(1)
|
lpushx key value
|
同上
|
当key为list,将value插入表头
|
key不存在时,什么都不做
|
rpush
|
1.0.0
|
O(1)
|
rpush key value [value ...]
|
同上
|
批量插入value到key的表尾(右)
|
2.4之后才支持批量插入
|
rpushx
|
2.2.0
|
O(1)
|
rpushx key value
|
同上
|
当key为list,将value插入表尾
|
key不存在时,什么都不做
|
lpop
|
1.0.0
|
O(1)
|
lpop key
|
key的头元素
|
删除key的头元素
|
key不存在时,返回nil
|
rpop
|
1.0.0
|
O(1)
|
rpop key
|
key的尾元素
|
删除key的尾元素
|
同上
|
rpoplpush
|
1.2.0
|
O(1)
|
rpoplpush source destination
|
被删除的元素
|
删除source的尾元素,并将其加入destination的表头
|
source不存在,返回nil,什么都不做。source可以与destination相同
|
lrem
|
1.0.0
|
O(N)
|
lrem key count value
|
被删除的元素数量
|
根据count,删除值等于value的元素
|
count为0,全部删除。大于0,从表头搜索删除count个,小于从表尾开始删除count个
|
llen
|
1.0.0
|
O(1)
|
llen key
|
key的长度
|
获取key的长度
|
key不存在,返回0。key类型不正确,返回error
|
lindex
|
1.0.0
|
O(N)
|
lindex key index
|
key中下标为index的值
|
获取key中下标为index的值
|
index可以是负数,表示从尾部开始。index超过key的范围,返回nil。类型不正确,返回error
|
linsert
|
2.2.0
|
O(N)
|
linsert key before|after pivot value
|
修改之后的列表长度
|
将value的值插入在key中值pivot的前面或者后面
|
没有找到pivot返回-1,key不存在返回0
|
lset
|
1.0.0
|
O(N)
|
lset key index value
|
成功ok
|
修改key中下标为index的值为value
|
index超过范围返回key不存在时,返回error
|
lrange
|
1.0.0
|
O(S+N)
|
lrange key start stop
|
返回value列表
|
获取key中下标为start到stop的值的列表
|
start与stop可以为负数,超过key的长度部分直接忽略
|
ltrim
|
1.0.0
|
O(N)
|
ltrim key start stop
|
成功OK
|
列表key只保留下标start到stop之间的内容
|
同上
|
blpop
|
2.0.0
|
O(1)
|
blpop key [key...] timeout
|
如果列表为空,返回一个 nil 。 否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。
|
当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
|
|
brpop
|
2.0.0
|
O(1)
|
brpop key [key...] timeout
|
同上
|
当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的尾部元素。
|
|
brpoplpush
|
2.2.0
|
O(1)
|
brpoplpush source destination
|
假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长。
|
BRPOPLPUSH 是 RPOPLPUSH source destination 的阻塞版本,当给定列表 source 不为空时, BRPOPLPUSH 的表现和 RPOPLPUSH source destination 一样。
当列表 source 为空时, BRPOPLPUSH 命令将阻塞连接,直到等待超时,或有另一个客户端对 source 执行 LPUSH key value [value …] 或 RPUSH key value [value …] 命令为止。
|
超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期延长(block indefinitely) 。
|