news 2026/4/18 14:03:19

详解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/4/17 20:01:34

太空算力、AI上星与卫星智能化

你有没有想过,当我们仰望星空时,可能正在见证一场堪比移动互联网诞生的革命? 最近,“太空算力”概念突然火了。很多人把它理解成“把服务器搬上天”,但真相远不止这么简单。本篇我们就来系统梳理几个看似熟悉但常被混淆…

作者头像 李华
网站建设 2026/4/18 8:05:22

基于Java+SSM的种子商店网站的设计与实现(源码+lw+部署文档+讲解等)

课题介绍 本课题旨在设计并开发基于 JavaSSM(SpringSpringMVCMyBatis)框架的种子商店网站,针对传统种子经营门店线下渠道单一、品类展示受限、订单管理低效、农户购种选种不便等痛点,打造集种子展示、在线选购、订单管理、农资资讯…

作者头像 李华
网站建设 2026/4/18 7:42:46

基于Android的安卓云笔记系统(源码+lw+部署文档+讲解等)

课题介绍 本课题旨在设计并实现基于 Android 的安卓云笔记系统,针对传统本地笔记数据易丢失、多端同步不便、编辑功能单一、内容管理杂乱等痛点,打造适配移动场景的轻量化云笔记应用,实现笔记内容云端存储、多端同步、编辑便捷化、管理智能化…

作者头像 李华
网站建设 2026/4/18 7:40:29

基于Android的智慧旅游平台设计与实现(源码+lw+部署文档+讲解等)

课题介绍 本课题旨在设计实现基于Android的智慧旅游平台APP,针对传统旅游中景点信息零散、行程规划盲目、线下服务对接低效、体验同质化等痛点,打造集智能导览、个性化行程规划、一站式周边服务、旅游社交互动于一体的移动服务平台,实现旅游全…

作者头像 李华
网站建设 2026/4/18 7:05:04

大型商务综合体怎么选会议设备和厂商?适配 + 稳定才是关键

大型商务办公综合体作为城市商务活动的核心载体,汇聚了各类规模、不同业态的企业,会议场景的频次、规格与多样性远超普通办公空间。会议设备作为商务沟通、决策研讨、品牌展示的核心支撑,其选型是否合理、适配,直接影响综合体的办…

作者头像 李华
网站建设 2026/4/18 7:57:51

LeetCode122. 买卖股票的最佳时机 II:贪心策略实现最大利润

在股票交易类算法题中,力扣122题「买卖股票的最佳时机 II」是经典的贪心算法应用场景。这道题的核心要求是:允许在任意天数买入和卖出股票(可多次交易),求能获得的最大利润。本文将从题目分析、思路推导、代码实现到复…

作者头像 李华