Java實現Redis的訊息訂閱和發布

2021-07-14 04:24:45 字數 1657 閱讀 9115

1.  首先需要乙個訊息***類

package com.sogou.baike.testimport.testsubscribe;

import redis.clients.jedis.jedispubsub;

/** * created by denglinjie on 2016/6/29.

*/public class redismsgpubsublistener extends jedispubsub

@override

public void unsubscribe(string... channels)

@override

public void subscribe(string... channels)

@override

public void psubscribe(string... patterns)

@override

public void punsubscribe()

@override

public void punsubscribe(string... patterns)

@override

public void onmessage(string channel, string message)

@override

public void onpmessage(string pattern, string channel, string message)

@override

public void onsubscribe(string channel, int subscribedchannels)

@override

public void onpunsubscribe(string pattern, int subscribedchannels)

@override

public void onpsubscribe(string pattern, int subscribedchannels)

@override

public void onunsubscribe(string channel, int subscribedchannels)

}

該類需要繼承

jedispubsub ,並實現其抽象方法,通過方法的名稱很清楚的看出來,這個***是用來訂閱乙個頻道,在訂閱該頻道,取消訂閱,收到訊息等狀態會對應呼叫相關的方法

2.  訂閱測試類

public class testsubscribe 

}

該類實現對頻道redischattest的訂閱監聽,頻道的訂閱,取消訂閱,收到訊息都會呼叫listener物件的對應方法

注意:subscribe是乙個阻塞的方法,在取消訂閱該頻道前,會一直阻塞在這,只有當取消了訂閱才會執行下面的other code,參考上面**,我在onmessage裡面收到訊息後,呼叫了this.unsubscribe(); 來取消訂閱,這樣才會執行後面的other code

3.  發布訊息測試類

public class testpublish 

}

這個類向頻道redischattest發布訊息,第二步因為訂閱了該頻道,所以會收到該訊息。

Java實現Redis的訊息訂閱和發布

首先需要乙個訊息 類 html view plain copy package com.sogou.baike.testimport.testsubscribe import redis.clients.jedis.jedispubsub created by denglinjie on 2016 ...

Java實現redis的訊息訂閱和發布

1.首先需要乙個訊息 類 package com.sogou.baike.testimport.testsubscribe import redis.clients.jedis.jedispubsub created by denglinjie on 2016 6 29.public class r...

redis實現訊息佇列

用redis實現乙個訊息通知系統,總結了一下技術細節,其中演示 如果沒有特殊說明,使用的都是phpredis擴充套件來實現的。記憶體 比如要推送一條全域性訊息,如果真的給所有使用者都推送一遍的話,那麼會占用很大的記憶體,實際上不管粘性有多高的產品,活躍使用者同全部使用者比起來,都會小很多,所以如果只...