Redis Stream 的一点理解

使用Redis实现了一个系统之间解耦的demo, 采用了 StackExchange.Redis  C#类库,  实现代码非常简单, 加深了对于 redis stream的理解. 

 Redis StreamRedis Pubsub
消费模式(推拉)

消费者采用拉模式

消费者端采用短时轮询机制拉取消息

将消息推送到消费者端
吞吐量拉模式下吞吐量会更好推模式下吞吐量差一些
延迟拉模式的延迟较大推模式延迟很小
多播支持, 而且支持类似 kafka的consumer group 概念支持, 同一个消息会推送到多个客户端, 即fanout
持久化支持不支持, 所以有可能会丢消息
acknowledge机制支持因为是push模式, 所以不需要
消息可靠性范式at most once    fire and forget
   
   
 方案使用场景
Redis Stream

实时性要求不太的高的系统之间解耦情形.

特点是: 轻量级方案

Redis Pubsub

没有什么太适合的场景.

RabbitMQ

全功能的MQ

1. 适合于实时性和可靠性要求都高的系统之间解耦, 采用push模式

2. 适合于实时性要求不太高的系统之间解耦, 采用pull 模式.
Kafka适合于数据集成或大数据类项目, 实时性要求不高, 吞吐量要求很高
  

================================

参考

================================

redis 官网上的博客, 讲解一些基本概念和使用场景

https://redis.com/blog/what-to-choose-for-your-synchronous-and-asynchronous-communication-needs-redis-streams-redis-pub-sub-kafka-etc-best-approaches-synchronous-asynchronous-communication/

What are the main differences between Redis Pub/Sub and Redis Stream?

https://stackoverflow.com/questions/59540563/what-are-the-main-differences-between-redis-pub-sub-and-redis-stream

#yyds干货盘点#Redis之Stream

https://blog.51cto.com/u_13649800/4703619

#yyds干货盘点# Redis真的可以做MQ消息队列吗?

https://blog.51cto.com/u_11440114/4584094

基于Redis的Stream类型的完美消息队列解决方案基于Redis的Stream类型的完美消息队列解决方案

https://zhuanlan.zhihu.com/p/60501638

C# stackexchange.redis 类库官网

https://stackexchange.github.io/StackExchange.Redis/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值