Redis5.0中的stream是什么?

简介: Redis Stream 是一种持久化、有序的消息数据结构,支持消息队列、日志收集等场景。它具备消息持久化、主备同步、消费者组等功能,确保消息不丢失,并支持多消费者并发处理,适用于实时数据处理与分布式应用。

Stream 数据结构可以被视为一个日志或消息队列,其中每个消息都有一个唯一的 ID,并且按照添加的顺序进行排序。开发人员可以向 Stream 中添加消息、读取消息、删除消息以及订阅消息。Stream 数据结构还支持消费者组,可以让多个消费者并发地处理消息流。


在 Redis 5.0 之前,通过 Redis 的发布订阅(pub/sub)可以实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。


而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。


它的特点是支持持久化、消息具有有序性,并且支持分组。主要可以用来做消息队列、日志收集、实时数据处理和聊天室应用等。

  • 有序性:消息可以按照发布时间排序,消费者可以按照消息发布的时间顺序进行消费。
  • 多消费者支持:多个消费者可以订阅同一个 Stream 并独立消费消息,支持竞争式消费和共享式消费两种消费模式。
  • 持久化:Stream 支持消息持久化,即使 Redis 服务器重启或崩溃,之前的消息仍然可以恢复。
  • 消息分组:Stream 支持消息分组功能,可以将消息分配到不同的消费组中,从而实现更灵活的消息消费。
目录
相关文章
|
自然语言处理 搜索推荐 Java
号称elastic seaech 100多倍性能的Manticore search搜索引擎有多强
号称elastic seaech 100多倍性能的Manticore search搜索引擎有多强
2303 0
|
7天前
|
人工智能 JavaScript 安全
Claude Code 安装指南
Claude Code 是 Anthropic 推出的本地 AI 编程助手,支持 Mac/Linux/WSL/Windows 多平台一键安装(Shell/PowerShell/Homebrew/NPM),提供 CLI 交互、代码生成、审查、Git 提交等能力,并内置丰富斜杠命令与自动更新机制。
2800 0
|
iOS开发 MacOS Windows
解决报错 unable to access jarfile apachejmeter.jar 的一些技巧!🔥
解决报错 unable to access jarfile apachejmeter.jar 的一些技巧!🔥
2871 6
|
3月前
|
存储 算法 关系型数据库
【Java架构师体系课 | MySQL篇】② 深入理解MySQL索引底层数据结构与算法
InnoDB索引为何采用B+树?本文由浅入深解析二叉树、红黑树、B树的缺陷,详解B+树的结构优势:非叶子节点不存数据、叶子节点有序且双向链接,支持高效范围查询与磁盘预读,三层即可存储两千多万数据,极大提升查询性能。
254 7
|
19天前
|
Java
org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
SpringBoot项目启动报错YAML编码异常,通常因文件编码不一致导致。将IDEA中File Encodings设为UTF-8并重建项目(Rebuild Project)即可解决。
72 4
|
3月前
|
easyexcel Java 数据库连接
如何实现百万级数据从 Excel 导入到数据库?
本文介绍百万级Excel数据导入数据库的优化方案,涵盖内存溢出、性能瓶颈与错误处理三大问题。通过EasyExcel流式读取避免内存溢出,结合多线程并发读取多个sheet,并利用生产者-消费者模式提升处理效率。采用批量插入与事务管理提高数据库写入性能,同时设计数据校验、重试机制与日志记录保障容错性,确保大规模数据导入稳定高效。
323 0
|
10月前
|
存储 SQL 关系型数据库
MySQL 中的回表是什么?
在 MySQL 中,“回表”是指通过二级索引查询时,因二级索引仅存储索引字段值和主键值,需再根据主键到聚簇索引查找完整行数据的过程。此操作涉及两次索引查找,可能增加 IO 消耗,影响性能。优化方法包括使用覆盖索引或联合索引,避免回表,提升查询效率。合理设计索引对高并发、大数据量场景下的数据库性能至关重要。
589 17
|
Java
java将输入的数字金额转换为中文大写金额
java将输入的数字金额转换为中文大写金额
1437 1
|
JSON 前端开发 Java
获取HTTP请求参数的方法
获取HTTP请求参数的方法