前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《redis in action》List的其他命令

《redis in action》List的其他命令

作者头像
写一点笔记
发布2022-08-11 16:01:50
2860
发布2022-08-11 16:01:50
举报
文章被收录于专栏:程序员备忘录程序员备忘录

在第二篇文章中我们也提到了redis对于list的一些操作命令,list允许您将元素push和pop到list集合的首位中去。在获取一个元素的时候其实还有很多其他的操作命令。list数据结构可以维护一个队列,比如最近的文章或者最喜爱的评论等。

在本次文章中,我们主要聊一聊list,这种类型的数据结构能够存储排序的string列表值。我们这里将介绍和push和pop类似的常用的操作命令

这里做一下简单的介绍:

代码语言:javascript
复制
rpush:将元素添加到list的右侧
lpush:将元素添加到list的左侧
rpop:移除并返回最右边的元素
lpop:移除并返回最左侧的元素
lindex:返回给定偏移地址的元素
lrange:返回指定开始偏移地址和结束偏移地址之间的元素
ltrim:保留list中从开始到结束地址的元素

我们在执行push命令的时候会返回list的长度,除此之外我们还可以通过push命令添加多个 元素到list集合中,同样的使用trim命令截取从起始到结束偏移地址的元素。

当然redis也提供了原子性质的list操作命令。这些命令会让竞争同一资源的客户端发生阻塞。

代码语言:javascript
复制
blpop :将给定key的list的元素从左侧pop出来,在timeout之后再获取下一个
brpop:将给定key的list的元素从右侧pop出来,在timeout之后再获取下一个
rpoplpush:将最右侧的集合A中的元素返回并移除,然后添加到目标集合B的最左侧,并将该元素返回给用户
brpoplpush:将最有次的元素返回并移除然后添加到目标集合的左侧,并返回给用户,该命令是线程安全的。

上述的这些命令都是十分有用的,尤其在做队列的时候,在第六章会详细进行介绍。

这里的blpop [k1,k2]相当于将多个集合列出来,然后逐个从前往后进行pop操作。可以认为是将多个列表合并然后使其具有次序性。在本书的第六章还将介绍使用list的这些命令实现一个任务调度队列。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 写点笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档