簡述
- Redis可作爲消息隊列中間件使用,屬於發佈訂閱模式
- 消息隊列可以實現【系統解耦】、【異步處理】、【流量削峯】
- 訂閱者先訂閱某個頻道,Linux命令爲 【SUBSCRIBE 頻道名】
- 發佈者在該頻道發佈消息,Linux命令爲 【PUBLISH 頻道名 消息內容】
Jedis實現
【訂閱者】
package com.bpf.redis.pubsub;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
public class Subscriber extends JedisPubSub {
/*
* 當接收到消息後觸發該方法
* */
@Override
public void onMessage(String channel, String message) {
//業務邏輯處理
System.out.println("頻道[" + channel + "]發佈了一條消息[" + message + "]");
}
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
Subscriber subscriber = new Subscriber();
jedis.subscribe(subscriber,"channel");
}
}
【發佈者】
package com.bpf.redis.pubsub;
import redis.clients.jedis.Jedis;
public class Publisher {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
jedis.publish("channel","歡迎學習Redis!");
jedis.close();
}
}