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

2021-07-16 03:22:51 字數 1846 閱讀 2821

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

[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擴充套件來實現的。記憶體 比如要推送一條全域性訊息,如果真的給所有使用者都推送一遍的話,那麼會占用很大的記憶體,實際上不管粘性有多高的產品,活躍使用者同全部使用者比起來,都會小很多,所以如果只...