Redis命令之列表

1. lpush

lpush list item1 item2...:将一个或多个元素推入给定列表的左端
在这里插入图片描述
在这里插入图片描述


2. rpush

rpush list item1 item2...:将一个或多个元素推入给定列表的左端
在这里插入图片描述
在这里插入图片描述


3. lpushx

lpush list item1 item2..: 在列表不为空时,才会推进元素到列表左端,可以一次推进多个元素
在这里插入图片描述


4. rpushx

rpush list item1 item2..: 在列表不为空时,才会推进元素到列表右端,可以一次推进多个元素
在这里插入图片描述


5. lpop

lpop list: 弹出列表最左端的元素
在这里插入图片描述


6. rpop

rpop list: 弹出列表最右端的元素
在这里插入图片描述


7. rpoplpush

rpoplpush list1 list2: 将list1列表最右端的元素弹出推进到list2列表左端,返回被弹出的元素作为结果
在这里插入图片描述

  1. 源列表和目标列表设置为同一个列表,在这种情况下,RPOPLPUSH命令的效果相当于将列表最右端的元素变成列表最左端的元素
  2. 源列表非空,但是目标列表为空,那么RPOPLPUSH命令将正常执行弹出操作和推入操作
  3. 源列表空,但是目标列表非空,那么RPOPLPUSH命令只返回一个空值表示命令执行失败

8. llen

llen list: 获取列表的长度
在这里插入图片描述


9. lindex

lindex list index: 获取指定索引上的元素
在这里插入图片描述
在这里插入图片描述
超出索引范围则返回nil


10. lrange

lrange listt start end: 获取[start,end[位置上面的元素
在这里插入图片描述
在这里插入图片描述
索引超出范围:

  1. start end都超出范围
  2. start end中的1个超出范围
    在这里插入图片描述

11. lset

lset list index value:为列表的指定索引设置新元素
在这里插入图片描述


12. linsert

linsert list before/after privot value: 在元素privot前面或者后面插入新的元素value
在这里插入图片描述在这里插入图片描述


13. ltrim

ltrim list start end: 删除[start,end]外的所有列表元素
在这里插入图片描述
ltrim也可以处理负数索引


14. lrem

lrem list count element:移除count个值为element的元素

  1. 如果count参数的值等于0,那么LREM命令将移除列表中包含的所有指定元素
    在这里插入图片描述
  2. 如果count参数的值大于0,那么LREM命令将从列表的左端开始向右进行检查,并移除最先发现的count个指定元素(左->右检查)
    在这里插入图片描述
  3. 如果count参数的值小于0,那么LREM命令将从列表的右端开始向左进行检查,并移除最先发现的abs(count)个指定元素(右->左检查)
    在这里插入图片描述

15. blpop/brpop

blpop list1 list2... timeout:带有阻塞功能的左端弹出操作,它接受任意多个列表以及一个秒级精度的超时时限作为参数

  1. 非阻塞情况
    在这里插入图片描述
  2. 阻塞情况
    在这里插入图片描述
    在这里插入图片描述
  3. 解除阻塞状态
    如果在同一时间,有多个客户端因为同一个列表而被阻塞,那么当导致阻塞的列表变为非空时,服务器将按照“先阻塞先服务”的规则,依次为被阻塞的各个客户端弹出列表元素
    example:
    有A B C D4个客户端,A B C依次执行了blpop list2 15这条命令,list2不存在,之后再客户端D往list2中添加2个元素,可以解除阻塞的是客户端A B,C依旧阻塞,因为A B先执行命令
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    brpop除了是从列表右端弹出元素以外,其他性质和blpop一样

16. brpoplpush

brpoplpush list1 list2 tiemout:BRPOPLPUSH命令是RPOPLPUSH命令的阻塞版本

  1. 如果源列表非空,那么BRPOPLPUSH命令的行为就和RPOPLPUSH命令的行为一样
    在这里插入图片描述

  2. 如果源列表为空,那么BRPOPLPUSH命令将阻塞执行该命令的客户端,然后在给定的时限内等待可弹出的元素出现,或者等待时间超过给定时限为止
    在这里插入图片描述
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodePanda@GPF

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值