List命令

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 ,第二个元素是被弹出元素的值。
它是 LPOP key 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BLPOP 命令阻塞,直到等待超时或发现可弹出元素为止。
当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。
brpop
2.0.0
O(1)
brpop key [key...] timeout
同上
它是 RPOP key 命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将被 BRPOP 命令阻塞,直到等待超时或发现可弹出元素为止。
当给定多个 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) 。
 
posted @ 2021-01-26 17:46  红雨520  阅读(166)  评论(0编辑  收藏  举报