Redis命令介绍之列表的操作命令(第二部分)

  • 2021-05-17更新:增加Redis 6.2新增的LMOVEBLMOVE命令。

在前文中,我们已经介绍了Redis列表相关的LPUSHLPOP等命令。在本文中,我将继续介绍Redis中列表的LTRIMRPOPLPUSHBLPOPBRPOPBRPOPLPUSHLPOS以及Redis 6.2新增的LMOVE以及BLMOVE命令。

从Redis 6.2.0开始,RPOPLPUSH以及BRPOPLPUSH命令将考虑被启用,请分别使用LMOVE以及BLMOVE替代。

LTRIM

LTRIM命令用于对列表进行修建,即只保留指定范围内的部分元素。指定范围的偏移量startstop都为以0为开始,即索引0为列表中的第一个元素,负数值表示相对于列表队尾的位置(如-1代表列表中最后一个元素)。例如命令LTRIM mykey 0 4在执行后只保留列表中的前五个元素,其它元素将被删除。

LTRIM key start stop

start的值大于列表的长度或start大于stop时,结果将为一个空列表。若stop大于列表的长度,其值将被设置为列表最后一个元素的索引值。

在Redis文档中提到了使用LTRIMLPUSHRPUSH命令配合使用,将达到使列表长度保持在指定大小内的效果,例如执行下述命令时,将使mylist列表的长度始终保持在100以内(包括100)。

redis> LPUSH mylist someelement
redis> LTRIM mylist 0 99

示例

redis> RPUSH mykey "value1" "value2" "value3" "value4" "value5"
(integer) 5
redis> LTRIM mykey 1 -2
OK
redis> LRANGE mykey 0 -1
1) "value2"
2) "value3"
3) "value4"

处理超出边界的情况:

redis> RPUSH mykey "value1" "value2" "value3" "value4" "value5"
(integer) 5
# stop大于列表大小
redis> LTRIM mykey 2 10
OK
redis> LRANGE mykey 0 -1
1) "value3"
2) "value4"
3) "value5"
# start与stop皆大于列表大小
redis&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值