news 2026/10/21 21:48:43

详解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/10/21 3:26:42

详解redis(8):数据结构Hash

一、Hash 是什么? 逻辑层面 key user:1 value {name: "xiaolin",age: 18,city: "beijing" }也就是: HSET user:1 name xiaolin age 18 city beijingHash vs String 用 String 存对象 SET user:1 {"name":"xia…

作者头像 李华
网站建设 2026/10/19 19:42:00

详解redis(9):数据结构set

一、Redis Set 是什么Set 不重复 无顺序的集合一个 自动去重、不关心顺序 的容器二、Set 和 List 的本质区别对比项ListSet是否允许重复✅ 允许❌ 不允许是否有顺序✅ 有顺序(下标)❌ 无序能否按下标访问✅ LINDEX❌ 不支持是否支持集合运算❌✅ 交集 …

作者头像 李华
网站建设 2026/10/19 19:42:00

2026年矩阵系统选型图谱:5款主流软件的“性格画像”与适用场景匹配

在选择矩阵系统时,很多企业容易陷入“谁功能最多”的误区。实际上,没有最好的系统,只有最适合业务流派的工具。为了公平起见,我们选取了市面上5种不同定位的代表性产品,从核心场景、功能侧重及适用人群三个维度进行等量…

作者头像 李华
网站建设 2026/10/19 19:42:03

APS概念-需求时间供应时间

一、核心概念解读这是 APS 系统中需求时间与供应时间的精细化配置规则,用来解决 ERP 仅按 “天” 跟踪订单、无法匹配生产实际小时 / 分钟级节奏的问题,通过精准的时间设置,确保供应与需求的无缝衔接。二、参数定义与默认值参数定义默认值需求…

作者头像 李华
网站建设 2026/10/20 12:35:31

能对接电商系统的售后服务系统有哪些?

在互联网电商行业 ,售后服务系统需要与电商系统对接 ,实现业务协同 。选择—家能对接电商系统的售后服务系统提供商 ,能够帮助企业提升售后服务效率 ,降低服务成本 ,提高客户满意度。在电商对接售后服务系统领域 &…

作者头像 李华
网站建设 2026/10/19 19:41:55

2026年1月变电设备六氟化硫泄漏检测仪品牌推荐

在电力行业,特别是变电设备领域,六氟化硫(SF6)气体的绝缘与灭弧性能至关重要,但其泄漏不仅会导致设备故障,更是一种强效温室气体。因此,选择一款可靠、精准的六氟化硫泄漏检测仪是保障电力安全与…

作者头像 李华