赞
踩
参考地址: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 的客户端就会同时收到这个数据
redis
的List
数据类型结构提供了blpop 、brpop
命令结合rpush、lpush
命令可以实现消息队列机制,基于双端链表实现的发布与订阅功能
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。