Redis数据结构--Lists常用命令

左为L 右为R,以下命令有左有右

格式:lpush key value [value ...]
示例:lpush mylist 1 2
作用:从左边入队一个或者多个元素
成功:返回队列中元素的个数
失败:

格式:lpushx key value
示例:lpushx mylist 1
作用:当队列存在时从左边入队一个元素
成功:返回队列中元素的个数
失败:0(list不存在)

格式:lpop key
示例:lpop mylist
作用:从左边出队一个元素
成功:返回对应元素的值
失败:nil(list不存在或者长度为0)

只有L

格式:lindex key index
示例:lindex mylist 1
作用:通过下标获取对应元素
成功:返回队列中对应的元素值
失败:nil(list对应元素不存在)

格式:linsert key before|after pivot value
示例:lindex mylist before 2 3
作用:在列表中的另一个元素之前或之后插入一个元素
成功:返回插入后list的长度
失败:-1(list对应元素不存在)

格式:llen key
示例:llen mylist
作用:获取list的长度
成功:返回队列的长度
失败:0(对应list不存在或为空)

格式:lrange key start stop
示例:lrange mylist 0 -1
作用:从列表中获取指定返回的元素,从0开始,-1代表尾部第一个,-2代表尾部第二个
成功:返回队列对应元素
失败:0(对应list不存在或为取值范围有误)

格式:lrem key count value
示例:lrem mylist -2 2
作用:移除队列中前count次出现的value元素。count<0,尾部开始;= 0,全部;>0,头部开始。
成功:返回移除的个数
失败:0(对应list不存在或为对应元素为空)

格式:lset key index value
示例:lset mylist 1 a
作用:设置队列里一个元素的值
成功:OK
失败:ERR no such key(对应list不存在) ERR index out of range(下标越界)

格式:ltrim key start stop
示例:ltrim mylist 1 5
作用:修剪list,相当于substring
成功:OK
失败:

只有R

格式:rpoplpush source destination
示例:rpoplpush mylist mylist2
作用:删除列表最后一个元素,将其追加到另一个列表
成功:移动的元素
失败:nil(source不存在)
注意:如果source和destination相同,相当于把最后一个元素放到第一个

阻塞队列 B

如果所有给定 key 都不存在或包含空列表,那么 BLPOP 命令将阻塞连接, 直到有另一个客户端对给定的这些 key 的任意一个执行 LPUSH 或 RPUSH 命令为止。
一旦有新的数据出现在其中一个列表里,那么这个命令会解除阻塞状态,并且返回 key 和弹出的元素值。

格式:blpop key[key ...] timeout
示例:blpop list1 list2 list3 0
作用:删除并获得列表中第一个元素或阻塞直到一个可用。timeout 参数表示的是一个指定阻塞的最大秒数的整型值。当 timeout 为 0 是表示阻塞时间无限制。
成功:对应的元素值
失败:

格式:brpop key[key ...] timeout
示例:brpop list1 list2 list3 0
作用:删除并获得列表中最后一个元素或阻塞直到一个可用。timeout 参数表示的是一个指定阻塞的最大秒数的整型值。当 timeout 为 0 是表示阻塞时间无限制。
成功:对应的元素值
失败:

格式:brpoplpush source destination timeout
示例:brpoplpush list1 list2 0
作用:弹出一个列表的值,将它推到另一个列表,并返回它或者阻塞知道有一个可用。
成功:对应的元素值
失败:

猜你喜欢

转载自blog.csdn.net/saywhat_sayhello/article/details/80452683