Redis學習筆記(6)消息的訂閱與發佈

數據庫還能通信,真是學習了!!!

先寫一個方法,訂閱消息:

    @Test
    public void redis_test_message_subscribe() {
        JedisPubSub jedisPubSub = new JedisPubSub() {
            @Override
            public void onMessage(String channel, String message) {
                super.onMessage(channel, message);
                //處理回調
                System.out.println(channel + ":" + message);
            }
        };
        //訂閱
        jedis.subscribe(jedisPubSub, "chat");
    }

跑起來看看:


可以看出,這個測試方法並沒有立即結束,因爲有個回調,正在監聽消息。


加下來我們要寫一個方法,來發布消息。

@Test
    public void redis_test_message_publish() {
        //發佈
        jedis.publish("chat", "社會主義好");

    }
這個方法就一行,發佈一條消息,消息頻道和訂閱的頻道要一致。

把發佈者啓動起來:



發佈者運行起來就結束了。切換到訂閱者,可以看到已經收到消息。


但是,我們也發現訂閱者還是沒有結束,監聽還在繼續,他在繼續等待消息。

我們嘗試把消息內容改變一下,重新運行發佈者。

看看結果:


訂閱者收到了新的消息,而且仍然在繼續監聽。

個人感覺這個有利於在分佈式的服務中做遠程調用,感覺要比WebSocket好用一些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章