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

Redis Stream

Redis Stream 是 Redis 5.0 版本新引入的一种数据结构,主要用于实现消息队列(MQ,Message Queue)。与 Redis 的发布订阅 (pub/sub) 模式相比,Redis Stream 提供了消息的持久化和主备复制功能,这使得任何客户端能够在任何时刻访问数据,并且能记住每一个客户端的访问位置,保证消息不丢失【0†source】。

Redis Stream 的结构包括一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的 ID 和对应的内容。每个 Stream 都有唯一的名称,即 Redis 的 key,在首次使用 xadd 指令追加消息时自动创建【0†source】。

Redis Stream 适用于实时数据处理、事件驱动架构、消息传递等场景。它是一个有序的、持久化的、可扩展的日志数据结构。每个 Stream 都由一个唯一的键标识,可以包含多个消息条目,每个消息条目都有一个唯一的 ID,并且按照添加的顺序进行排序【1†source】。

在 Redis Stream 中,消息 ID 有序集合是基于基数树实现的,这使得 Redis Stream 能够高效地定位元素在有序集合中的位置,以及在有序集合中查找一段范围内的元素。同时,消息哈希表是基于 listpack 实现的,这是一种紧凑的、可扩展的、有序的、二进制数据结构,用于存储多个元素【2†source】。

Redis Stream 提供了对于消费者和消费者组的阻塞、非阻塞的获取消息的功能,以及消息多播的功能,即同一个消息可被分发给多个单消费者和消费者组。它还提供了消息持久化的功能,可以让任何消费者访问任何时刻的历史消息【3†source】。

总体来说,Redis Stream 是一个功能强大的数据结构,适用于需要高效、可靠消息队列的场景。


http://www.kler.cn/a/474302.html

相关文章:

  • 【cuda学习日记】2.2 使用2维网络(grid)和2维块(block)对矩阵进行求和
  • SpringBoot | 使用Apache POI库读取Excel文件介绍
  • (长期更新)《零基础入门 ArcGIS(ArcScene) 》实验七----城市三维建模与分析(超超超详细!!!)
  • MacBook Linux 树莓派raspberrypi安装Golang环境
  • 【Linux】深入理解文件系统(超详细)
  • 【AJAX详解】
  • Git指令
  • 一文读懂单片机的串口
  • 基于R语言的DICE模型实践技术应用;评估气候变化对经济的影响以及不同减排政策的经济成本和效益
  • Dify进阶:使用FastAPI和Selenium构建远程浏览器控制与录屏服务
  • 蓝桥杯python省赛备战day2--数组枚举--845数组中的最长山脉-枚举算法刷题学习笔记3--leetcode
  • NoSQL 基础知识总结
  • python【数据结构】
  • RabbitMQ中的配置文件advanced.config
  • 配置嵌入式服务器
  • Vue3 监听属性
  • [豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第一天
  • git commit冲突,需输入提交信息合并提交
  • 服务器端QTcpSocket如何判断客户端是否在线
  • linux MySQL Percona Toolkit 使用指南
  • 【Pandas】pandas Series truediv
  • 系统架构设计师考点—数据库技术基础
  • pytest 参数介绍
  • CSS 变量:让你的样式更灵活、更易维护
  • 05容器篇(D2_集合 - D4_遍历相关)
  • buildroot ffmpeg 及 PJSIP安装使用详解