当前位置: 首页 > news >正文

Redis Stream

Redis Stream(Redis 流)是 Redis 5.0 引入的数据结构,主要用于 消息队列、事件存储和数据流处理。它结合了 列表(List)、发布订阅(Pub/Sub)和有序集合(Sorted Set) 的特性,适用于 高吞吐的日志、事件驱动架构和实时数据处理

Redis Stream 的特点

  1. 持久化日志存储:Stream 内部数据按追加(Append-Only)方式存储,支持历史消息查询。
  2. 消息队列:支持生产者-消费者模式,多个消费者可以消费同一条消息。
  3. 消费者组(Consumer Group):支持多个消费者分配和消费消息,类似于 Kafka 的 Consumer Group
  4. 高效的 ID 机制:每条消息都有一个唯一的 Stream ID(形如 1678875112345-0),按时间顺序存储。
  5. 阻塞和非阻塞读取:支持 XREAD(读取)、XREADGROUP(消费者组读取)以及 XADD(添加)。
  6. 自动删除策略:可以手动或自动删除过期数据,防止 Stream 过大占用内存。

基本命令

命令作用
XADD mystream * field1 value1 field2 value2添加数据到 Stream
XRANGE mystream - +查询 Stream 内的所有数据
XREAD COUNT 2 STREAMS mystream 0读取 Stream 数据
XGROUP CREATE mystream mygroup $ MKSTREAM创建消费者组
XREADGROUP GROUP mygroup consumer1 COUNT 1 STREAMS mystream >从消费者组读取消息
XACK mystream mygroup 1684211234567-0确认消息已消费
XDEL mystream 1684211234567-0删除特定消息
XLEN mystream获取 Stream 长度

典型应用场景

  1. 日志和事件存储:如 用户行为日志、订单流水 记录。
  2. 消息队列:适用于 实时任务调度,提供类似 Kafka 的能力,但更轻量。
  3. 流式数据处理:配合 Redis Gears 进行 数据分析、实时告警
  4. 微服务通信:用于异步任务处理、去中心化事件驱动架构。

Redis Stream 提供了强大的 数据流处理能力,结合 Kafka、RabbitMQ 等消息队列的优点,适用于高性能分布式系统。

相关文章:

  • Ubuntu20.04 在离线机器上安装 NVIDIA Container Toolkit
  • [项目]基于FreeRTOS的STM32四轴飞行器: 三.电源控制
  • llama-factory || AutoDL平台 ||启动web界面
  • LeetCode1328
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-附录C-JavaScript 库和框架
  • 驱动开发系列43 - Linux 显卡KMD驱动代码分析(四)- DRM设备操作
  • [AI]从零开始的so-vits-svc歌声推理及混音教程
  • 智能汽车制造:海康EasyNVR多品牌NVR管理平台实现无插件视频监控直播方案
  • 数字IC后端实现教程| Clock Gating相关clock tree案例解析
  • 构建自己的AI客服【根据用户输入生成EL表达式】
  • iOS安全和逆向系列教程 第16篇:Frida入门与高级应用
  • sql sqlserver的进程资源查看,杀掉多余进程
  • 非平稳时间序列分析(三)——季节模型(SARIMA、STL、Holt-Winters)
  • 盛铂科技SCP4000射频微波功率计与SPP5000系列脉冲峰值 USB功率计 区别
  • VSCode配置优化指南:打造高效开发环境的终极实践
  • 从开发和对抗的角度思考web网页中的接口逆向
  • python之爬虫入门实例
  • java后端开发day27--常用API(二)正则表达式爬虫
  • 【Day9】make/makeFile如何让项目构建自动化起飞
  • 神经网络|(十三)|SOM神经网络
  • 普京调整俄陆军高层人事任命
  • 新任国防部新闻发言人蒋斌正式亮相
  • 为什么越来越多景区,把C位留给了书店?
  • 日本航空自卫队一架练习机在爱知县坠毁
  • 人民日报评外卖平台被约谈:摒弃恶性竞争,实现行业健康发展
  • 著名连环画家庞邦本逝世