当前位置:   article > 正文

6. Redis 发布与订阅_redis订阅和发布 消息推送

redis订阅和发布 消息推送

6. Redis 发布与订阅

参考地址:https://blog.csdn.net/w15558056319/article/details/121490953

Redis的发布与订阅功能可以让客户端通过广播方式,将 消息(message)同时发送给可能存在的多个客户端,并且发送消息的客户端不需要知道接收消息的客户端的具体信息。换句话说,发布消息的客户端与接收消息的客户端两者之间没有直接联系。

在Redis中,客户端可以通过订阅特定的 频道(channel)来接收发送至该频道的消息,我们把这些订阅频道的客户端称为订阅者(subscriber)。一个频道可以有任意多个订阅者,而一个订阅者也可以同时订阅任意多个频道。除此之外,客户端还可以通过向频道发送消息的方式,将消息发送给频道的所有订阅者,我们把这些发送消息的客户端称为发送者(publisher)。

发布订阅的实现场景

1、实时沟通消息系统

2、微信公众号(点击关注,后台发送一篇博客,订阅的用户就可以监听到)

3、电商中,用户下单成功之后向指定频道发送消息,下游业务订阅支付结果这个频道处理自己相关业务逻辑

4、粉丝关注功能、文章推送

还有一些比较复杂的场景,可以使用消息中间件来做,kafka RabbitMQ ActiveMQ RocketMQ …等

在这里插入图片描述

示例:

有三个客户端订阅了一个 Channel1

在这里插入图片描述

当 Channel1 的后台发送了一个数据到 Channel1 的频道中,这三个订阅了 Channel1 的客户端就会同时收到这个数据
在这里插入图片描述

为什么需要发布、订阅

redisList 数据类型结构提供了 blpop 、brpop 命令结合 rpush、lpush 命令可以实现消息队列机制,基于双端链表实现的发布与订阅功能

  • 这种方式存在两个局限性:
  1. 不能支持一对多的消息分发。
  2. 如果生产者生成的速度远远大于消费者消费的速度,易堆积大量未消费的消息

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/472407
推荐阅读
相关标签