news 2026/6/24 3:40:56

详解redis(7):数据结构List

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
详解redis(7):数据结构List

一、List 是什么?

Redis List 的本质

有序的字符串序列,按插入顺序排列,两端操作快

你可以把它理解成:

双端队列

支持:

左边进 / 左边出

右边进 / 右边出

二、Redis 早期 List 的两种底层结构

Redis 的哲学:小数据用紧凑结构,大数据用通用结构

压缩列表

是什么?

一整块连续内存的紧凑结构

特点

内存占用极小
cache 友好
插入/删除需要移动内存
结构复杂(连锁更新问题)

双向链表

触发条件

元素数量多

或元素变大

node ⇄ node ⇄ node ⇄ node

特点

插入删除 O(1)
每个节点额外指针,内存浪费大
cache 命中率低

结构问题
ziplist修改代价大
linkedlist内存碎片多
共存代码复杂

三、Redis 3.2 之后的终极方案:QuickList

quicklist = 链表 + 压缩列表

quicklist 长什么样?

quicklist
┌────────┐ ┌────────┐ ┌────────┐
│ ziplist│ ⇄ │ ziplist│ ⇄ │ ziplist│
└────────┘ └────────┘ └────────┘

外层:双向链表

每个节点:一个 ziplist

quicklist 为什么比老方案好?

内存友好

一个 ziplist 里放多个元素

指针数量大幅减少

插入删除更快

一般只改某一个 ziplist

不用移动整个大 ziplist

cache 友好

ziplist 是连续内存

访问局部性强

操作复杂度

操作时间复杂度
LPUSH / RPUSHO(1)
LPOP / RPOPO(1)
LINDEXO(n)
LRANGEO(n)

四、什么时候该用 List?

适合

消息队列(简单版)

时间线

任务队列

栈 / 队列

不适合

频繁随机访问

需要按 value 查找

五、消息队列到底要满足什么?

一个合格的消息队列(MQ),至少要满足这 3 点:

能力含义
消息保序消息按发送顺序被消费
去重能力同一条消息不会被重复处理
消息可靠性消息不会“丢”

List 如何实现“消息保序”?(FIFO)

List 天然有序

Redis List 的特点:

有序

按插入顺序排列

两端操作快

所以它天然适合 FIFO 队列

为什么是 LPUSH + RPOP?

生产者:LPUSH ←←←
List
消费者: →→→ RPOP

List 消费的第一个问题:CPU 空转

解决方案:BRPOP(阻塞式)

BRPOP 的行为

如果队列为空

客户端阻塞(挂起)

一旦有新消息

立刻返回

不是忙等,是内核级等待

极大降低 CPU 消耗
非常适合 MQ 场景

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 16:21:54

气体涡轮流量计 本土精造 精准守护气体管控

2019年,大连格恩朗扎根滨城,承袭本土工业测控技术积淀,深耕气体计量领域,打造适配北方严寒、工业复杂环境的气体涡轮流量计。以“稳定精准、耐用易管”为核心,严守国家工业计量标准,覆盖燃气供应、工业气体…

作者头像 李华
网站建设 2026/6/18 11:52:43

用AI制作表格实战:20个高频ChatExcel指令词,告别低效Excel操作

随着AI技术的不断成熟,越来越多职场人开始思考一个现实问题:怎么用AI制作表格,才能真正省时间、少加班? 最近,ChatExcel上线了全新的AI做表功能,精准击中了打工人在表格制作和数据处理上的痛点。 那么问题…

作者头像 李华
网站建设 2026/6/13 0:00:21

力扣122 买卖股票的最佳时机II java实现

122.买卖股票的最佳时机II给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。然而,你可以在 同一天 多次买卖该股票,但要确…

作者头像 李华
网站建设 2026/6/23 7:14:53

互联网医院系统|互联网医院成品|互联网医院开发

互联网医院系统的兴起,正悄然改变传统医疗服务的边界与模式。通过技术赋能,医疗资源得以跨越时空限制,为患者提供更高效、便捷的诊疗体验。这一系统不仅整合了在线问诊、电子处方、药品配送、慢病管理等核心功能,还通过数据互联打…

作者头像 李华
网站建设 2026/6/22 19:07:07

APS概念-新订单开始日期延迟

一、核心概念解读新订单开始日期延迟是 APS 系统中为新插入的订单预留缓冲时间的参数,它会在订单正式排程前,提前一段固定的小时数来完成文书、采购、准备等前置工作,避免因紧急插单导致的生产混乱。二、关键作用与场景应对紧急插单当客户订单…

作者头像 李华
网站建设 2026/6/22 20:15:03

学霸同款AI论文平台TOP8:研究生开题报告神器测评

学霸同款AI论文平台TOP8:研究生开题报告神器测评 学术写作工具测评:为何需要这份2026年榜单 随着AI技术在学术领域的深入应用,越来越多的研究生开始依赖智能写作平台提升论文效率。然而,面对市场上琳琅满目的AI论文工具&#xf…

作者头像 李华