首先需要乙個訊息***類
[html]view plain
copy
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. 訂閱測試類
[html]view plain
copy
public class testsubscribe
}
該類實現對頻道redischattest的訂閱監聽,頻道的訂閱,取消訂閱,收到訊息都會呼叫listener物件的對應方法
注意:subscribe是乙個阻塞的方法,在取消訂閱該頻道前,會一直阻塞在這,只有當取消了訂閱才會執行下面的other code,參考上面**,我在onmessage裡面收到訊息後,呼叫了this.unsubscribe(); 來取消訂閱,這樣才會執行後面的other code
3. 發布訊息測試類
[html]view plain
copy
public class testpublish
}
這個類向頻道redischattest發布訊息,第二步因為訂閱了該頻道,所以會收到該訊息。
Java實現Redis的訊息訂閱和發布
1.首先需要乙個訊息 類 package com.sogou.baike.testimport.testsubscribe import redis.clients.jedis.jedispubsub created by denglinjie on 2016 6 29.public class r...
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擴充套件來實現的。記憶體 比如要推送一條全域性訊息,如果真的給所有使用者都推送一遍的話,那麼會占用很大的記憶體,實際上不管粘性有多高的產品,活躍使用者同全部使用者比起來,都會小很多,所以如果只...