news 2026/5/11 5:20:11

详解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/5/5 6:34:09

APS概念-可承诺量 / 承诺能力拉动容差

一、核心概念解读可承诺量 / 承诺能力拉动容差是 APS 系统在计算 ATP(可承诺量)和 CTP(承诺能力)时的关键参数,它定义了系统在寻找最优交付日期时的时间搜索范围,直接影响计划的精准性和计算效率。二、关键…

作者头像 李华
网站建设 2026/5/2 19:21:49

问题记录与反思

一、问题复盘 正式版图片不显示问题:小程序开发版、体验版中图片展示正常,但发布至正式版后图片完全不显示。经排查,核心原因是后台返回的图片 src 为 //xxx.png 格式(缺失 HTTP/HTTPS 协议),测试环境对协…

作者头像 李华
网站建设 2026/5/9 2:13:48

告别信息孤岛,商联达让总部-区域-门店数据实时同频

在消费市场日益多元、连锁经营规模持续扩张的今天,“总部统筹全局区域灵活适配门店精准落地”成为企业突围的核心诉求。然而,传统经营模式下,数据割裂形成的“信息孤岛”,却成为制约企业发展的隐形壁垒:总部难以及时掌…

作者头像 李华
网站建设 2026/5/7 9:04:01

UI自动化测试:Jenkins配置详解

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化测试和性能测试…

作者头像 李华
网站建设 2026/5/1 1:34:45

商城系统代运维里最常见、最容易踩、踩了就很痛的坑

商城系统代运维常见坑(实战版) 1) 备份只做不验(最致命) 现象:每天都备份,但真正需要恢复时发现备份损坏、权限不对、路径不对、数据不完整。后果:恢复失败 → 数据丢失 → 业务停摆。原因&…

作者头像 李华
网站建设 2026/5/1 16:10:15

碳足迹精准计量,华为FusionSolar助力云服务器绿色运维

“双碳”目标下,企业对云服务器的碳排放管控需求日益迫切,但传统数据中心碳排放统计多停留在机房层面,缺乏服务器级、CPU核级的精准计量手段,碳排放来源无法精准定位,绿色运维陷入“模糊化”困境。同时,不同…

作者头像 李华