標籤:
package cn.com;import java.util.List;import redis.clients.jedis.Jedis;public class Redis_PubSub {public static Jedis redis = new Jedis("localhost", 6379);// 串連redis/** * PUBLISH channel message * 將資訊 message 發送到指定的頻道 channel 。 * */public static void publish(){redis.publish("student_2", "123");redis.publish("student_1", "abc1");}/** * PUBSUB <subcommand> [argument [argument ...]] * PUBSUB 是一個查看訂閱與發布系統狀態的內省命令, 它由數個不同格式的子命令組成, * 以下將分別對這些子命令進行介紹。 * 列出當前的活躍頻道。 * 活躍頻道指的是那些至少有一個訂閱者的頻道, 訂閱模式的用戶端不計算在內。 * pattern 參數是可選的: * 如果不給出 pattern 參數,那麼列出訂閱與發布系統中的所有活躍頻道。 * 如果給出 pattern 參數,那麼只列出和給定模式 pattern 相匹配的那些活躍頻道。 * */public static void pubsub(){PubSubListener listener=new PubSubListener(); redis.subscribe(listener,new String[]{"student_1","student_2"}); }public static void pubsubChannels(){ List<String> list=redis.pubsubChannels("student_1"); for(String s:list){ System.out.println(s); } }public static void main(String [] args){publish();pubsub();pubsubChannels();}}
package cn.com;import redis.clients.jedis.JedisPubSub;public class PubSubListener extends JedisPubSub { // 取得訂閱的訊息後的處理 public void onMessage(String channel, String message) { System.out.println("取得訂閱訊息:"+channel + "=" + message); } // 初始化訂閱時候的處理 public void onSubscribe(String channel, int subscribedChannels) { // System.out.println(channel + "=" + subscribedChannels); } // 取消訂閱時候的處理 public void onUnsubscribe(String channel, int subscribedChannels) { // System.out.println(channel + "=" + subscribedChannels); } // 初始化按運算式的方式訂閱時候的處理 public void onPSubscribe(String pattern, int subscribedChannels) { // System.out.println(pattern + "=" + subscribedChannels); } // 取消按運算式的方式訂閱時候的處理 public void onPUnsubscribe(String pattern, int subscribedChannels) { // System.out.println(pattern + "=" + subscribedChannels); } // 取得按運算式的方式訂閱的訊息後的處理 public void onPMessage(String pattern, String channel, String message) { System.out.println(pattern + "=" + channel + "=" + message); } }
Redis學習筆記(8)-發布/訂閱