13_Redis Stream消息队列
1.Stream消息队列介绍
1.1 基本概念
Redis的Pub/Sub发布订阅模式虽然能够实现消息队列的功能,但存在一个显著局限性:它不支持消息持久化。因此,在网络连接中断或Redis服务发生故障时,消息会丢失。简而言之,Redis Pub/Sub能够有效地传递实时消息,但却无法保存历史消息记录。
Redis Stream是Redis 5.0版本新增加的一种数据结构(数据类型),它主要设计用于构建消息队(Message Queue,简称MQ)列和事件驱动的应用程序。与传统的Redis发布/订阅(Pub/Sub)不同,Streams不仅可以分发消息,而且能够持久化存储这些消息,并支持消息的历史记录查询和回溯。
Redis Stream提供了消息的持久化功能,这意味着即使在Redis实例重启后,之前写入的数据也不会丢失。此外,它还支持主从复制,保证了高可用性和容错能力。这解决了Redis Pub/Sub模式下的一个主要缺点——消息无法持久化的问题。
1.2 工作原理
Redis Stream消息队列的结构如下图所示。