Redis发布订阅模式

Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。下面是SUBSCRIBE命令和PUBLISH命令的用法:

  • SUBSCRIBE channel [channel ...]用于订阅给指定频道的信息。
  • PUBLISH channel message将信息 message 发送到指定的频道 channel。
发布订阅.JPG

Redis发布订阅功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。群聊时所有成员都订阅(SUBSCRIBE )一个主题,然后成员发送群消息时实际上是向该主题发布(PUBLISH )一条消息,从而实现通知。

1. Redis发布订阅机制的实现

订阅.JPG
发布.JPG

2. Redis发布订阅与ActiveMQ的比较

  1. ActiveMQ支持多种消息协议,包括AMQP,MQTT,Stomp等,并且支持JMS规范,但Redis没有提供对这些协议的支持。
  2. ActiveMQ提供持久化功能,但Redis无法对消息持久化存储,一旦消息被发送,如果没有订阅者接收,那么消息就会丢失。
  3. ActiveMQ提供了消息传输保障,当客户端连接超时或事务回滚等情况发生时,消息会被重新发送给客户端,Redis没有提供消息传输保障。

参考文章

  • https://redisbook.readthedocs.io/en/latest/feature/pubsub.html
  • https://blog.csdn.net/fly910905/article/details/78495971

你可能感兴趣的:(Redis发布订阅模式)