news 2026/5/10 4:23:29

详解redis(14):数据结构Stream

作者头像

张小明

前端开发工程师

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

一、为什么 Redis 一定要出 Stream?

发布订阅(Pub/Sub)的问题

优点

实时

简单

缺陷

不持久化

客户端离线 → 消息直接丢

无法回溯历史消息

本质原因:

Pub/Sub 是“广播事件”,不是“存储消息”

List 实现消息队列的问题

优点

FIFO

可阻塞

问题一:消息一旦消费就没了

无法重复消费

消费失败,消息直接丢

问题二:没有 ACK 机制

消费者RPOP后宕机

消息已经被删除

问题三:ID 需要自己维护

分布式环境下很麻烦

本质原因:

List 是“容器”,不是“消息日志"

二、Redis Stream 的设计目标

Redis 官方目标很明确:

做一个“真正的消息队列 / 消息日志系统”

Stream 要解决的问题:

能力是否支持
消息持久化
全局唯一 ID
消息不丢
消费确认(ACK)
多消费者
消费组
消息回溯

三、Stream 是什么?

Redis Stream 是一个“只追加的消息日志(Append-Only Log)”

Stream 的数据模型

消息 ID 是什么?

<毫秒时间戳>-<序列号>

特点:

全局有序

天然递增

分布式安全

Redis 自动生成(*

为什么 ID 如此重要?

用来定位消息

用来断点续消费

用来回溯历史消息

Stream 如何解决旧方案的问题?

1. 消息持久化

Stream 数据:

存在内存

写 AOF / RDB

Redis 重启消息仍在

2.支持历史消息读取

可以从头读到尾

离线重连也能补消息

3. 自动生成全局唯一 ID

Redis 保证:

不重复

单调递增

4. ACK 确认机制

只有 ACK 后:

消息才算“已处理”

消费者宕机?

未 ACK 的消息会留在 Pending List

5. 消费组

这是 Stream最重要的能力

没有消费组(广播)

每个消费者都能读到所有消息

有消费组(负载均衡)

特点:

一条消息只会被一个消费者处理

天然负载均衡

非常适合后台任务、订单处理

Stream vs List vs Pub/Sub

特性Pub/SubListStream
持久化
消息确认
重复消费
消费组
消息回溯
适合生产勉强
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 15:50:15

人群仿真软件:SimWalk_(9).结果分析与可视化

结果分析与可视化 在人群仿真软件中&#xff0c;结果分析与可视化是极为重要的环节。通过这一环节&#xff0c;我们可以直观地理解仿真过程中的各种数据和现象&#xff0c;从而对仿真模型进行优化和改进。本节将详细介绍如何在人群仿真软件中进行结果分析与可视化&#xff0c;…

作者头像 李华
网站建设 2026/5/3 11:02:48

知网AIGC检测不通过?3步搞定从被退到通关

知网AIGC检测不通过&#xff1f;3步搞定从被退到通关 TL;DR&#xff1a;知网AIGC检测被退回不用慌&#xff0c;按这3步操作可以搞定&#xff1a;第一步分析检测报告定位问题段落&#xff0c;第二步用专业工具降AI&#xff08;嘎嘎降AI达标率99.26%&#xff0c;比话降AI专攻知网…

作者头像 李华
网站建设 2026/5/8 0:44:29

公理化方法

重要的真命题&#xff0c;称为定理引理是预备性命题&#xff0c;为后面的命题证明做准备。推论是指从定理出发&#xff0c;只需几步逻辑推导就能得出命题。

作者头像 李华
网站建设 2026/5/10 9:56:22

大数据领域Kafka的数据备份与恢复

知识金字塔构建者&#xff1a;Kafka数据备份与恢复的底层逻辑与实践指南 1. 引入与连接&#xff1a;当Kafka集群崩溃时&#xff0c;我们该如何拯救数据&#xff1f; 1.1 一个让工程师冒冷汗的场景 想象一下&#xff1a;你是某电商公司的大数据工程师&#xff0c;正值618大促高峰…

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

组织本地化部署AI系统需系统性规划与专业技术知识

随着人工智能技术迅猛发展&#xff0c;越来越多组织着手考虑于本地环境里部署、搭建AI系统。这般本地化地部署&#xff0c;不但能够更为妥善地契合数据安全以及隐私保护的要求&#xff0c;而且还能够依照具体业务需求予以深度定制。然而&#xff0c;AI系统搭建属于一个牵涉硬件…

作者头像 李华
网站建设 2026/5/3 17:46:35

vue2 表格如何使用 vxe-table 带列头复制单元格内容同步到 excel 中

vue2 表格如何使用 vxe-table 带列头复制单元格内容同步到 excel 中&#xff0c;vxe-table 本身是支持该功能的&#xff0c;通过设置 clip-config.isCopyHeader 启用复制时带列头信息。 https://vxetable.cn 复制粘贴&#xff0c;通过 keyboard-config.isClip 启用,复制带列头…

作者头像 李华