Redis提供了发布订阅的功能
发布:
PUBLISH
订阅:
SUBSCRIBE
先订阅,再发布
示例代码:
Pblisher 发布者
public class Pblisher {
public static void main(String[] args) {
System.out.println("现在开始发布者-----------------------------------------");
Scanner scanner = new Scanner(System.in);
Jedis jedis = new Jedis("127.0.0.1",6379);
String s = new String();
for (int i = 0;i < 5;i++){
System.out.println("发布一条新消息,还剩"+(5-i)+"次发布机会!");
s =scanner.next();
jedis.publish("cctv5",s);
System.out.println("发布完成!");
}
}
}
RedisSubScribe 订阅者
public class RedisSubScribe extends JedisPubSub {
/*
* 当订阅者接收到消息时回自动调用该方法 String channel1--->频道的名称 String message--->发布的消息
* */
@Override
public void onMessage(String channel, String message) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("我是订阅者:订阅频道:【"+channel+"】,收到的信息是:【"+message+"】,时间为:【"+df.format(new Date())+"】");
}
public static void main(String[] args) {
System.out.println("开始启动订阅者------------------------------------------------------");
//创建Jedis
Jedis jedis = new Jedis("127.0.0.1",6379);
//创建订阅者
RedisSubScribe redisSubScribe = new RedisSubScribe();
//订阅频道
jedis.subscribe(redisSubScribe,"cctv5");
}
}