redis 订阅发布
Redis 的 SUBSCRIBE
命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端。下面是SUBSCRIBE
命令和PUBLISH
命令的用法:
SUBSCRIBE channel [channel ...]
用于订阅给指定频道的信息。PUBLISH channel message
将信息 message 发送到指定的频道 channel。
Redis发布订阅功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。群聊时所有成员都订阅(SUBSCRIBE )一个主题,然后成员发送群消息时实际上是向该主题发布(PUBLISH )一条消息,从而实现通知。
1. Redis发布订阅机制的实现
2. Redis发布订阅与ActiveMQ的比较
- ActiveMQ支持多种消息协议,包括AMQP,MQTT,Stomp等,并且支持JMS规范,但Redis没有提供对这些协议的支持。
- ActiveMQ提供持久化功能,但Redis无法对消息持久化存储,一旦消息被发送,如果没有订阅者接收,那么消息就会丢失。
- ActiveMQ提供了消息传输保障,当客户端连接超时或事务回滚等情况发生时,消息会被重新发送给客户端,Redis没有提供消息传输保障。