一、什么是redis的发布/订阅
首先什么是发布/订阅模式,Pub/Sub这种订阅模式是一种常用的通信模式,采用事件作为通信机制,当订阅者(客户端)以事件订阅的方式去表达愿意接受一种感兴趣的事情,而发布者(服务端)可以随时向订阅者发布其订阅的相关消息。就像是微信中的公众号,当你关注某个公众号,你即为订阅者,而该公众号则为发布者,当公众号有新的内容推送的时候,发布一条新的文章,作为订阅者则可以收到这条又发布者发布的消息,阅读或者做其他操作。
然后什么是Redis的发布/订阅,首先Redis中的发布/订阅(pub/sub)可以解除订阅者和发布者之间的耦合性,Redis是pub/sub的Server,所以在此Redis是作为一个路由器的。订阅者可以通过subscribe和psubscribe命令向Redis server 订阅自己感兴趣的消息类型。当发布者通过publish命令向Redis server发送特定类型的信息时,订阅该信息类型的全部client(订阅者)都会收到此消息。redis将信息类型称为通道(channel)。
二、关于Redis的发布/订阅的命令
三、使用Jedis来实现发布/订阅
思路大致为:先要有jedis的maven依赖,然后按照订阅/消费顺序来安排
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
- 先订阅一个名为:mychannel的频道,要有一个处理订阅相关事件的类
- 需要一个进行消息发布的类
- 需要一个线程专门进行订阅
- 在订阅者这端将在onMessage收到消息
import redis.clients.jedis.JedisPubSub;
/**步骤一:
* 用于处理订阅相关事件,继承自JedisPubSub
* @author Administrator
*/
public class JedisSubscribe extends JedisPubSub {
public JedisSubscribe() {
}
/**
*