Java端實現RedisPUB SUB 訂閱發布

2021-09-23 17:56:01 字數 2007 閱讀 4401

redis.clientsgroupid>

jedisartifactid>

2.9.0version>

jartype>

compilescope>

dependency>

1.2 - 開啟 redis 伺服器待命.

1/3.

先開啟

sub端:

package example.me.pubsub;

import redis.clients.jedis.jedis;

import redis.clients.jedis.jedispubsub;

public

class

mysub

public

void

onsubscribe(string channel, int num)

public

void

onmessage(string channel, string msg)

public

void

onpunsubscribe(string channel, int num)

/** num 訂閱數量

*/public

void

onpsubscribe(string channel, int num)

/** channel0訂閱的channel正規表示式

* channel 匹配上該正則channel值

* msg 收到的訊息

*/public

void

onpmessage(string channel0, string channel, string msg)

};/*

* 啟動訂閱,當該方法啟動時,將阻塞等待訊息

* 說明:

* 1.subscribe(jedispubsub jedispubsub, string... channels)

* 是常規訂閱方法,channel值基於完全匹配,方法中channels是多個要訂閱的channel值

* 2.psubscribe(jedispubsub jedispubsub, string... patterns)

* 是正則訂閱方法,channel值基於正則匹配,方法中的patterns是多個訂閱到正規表示式

* 不同的訂閱將會觸發jedispubsub中不同的方法

*/subjedis.subscribe(jedissubsub, "news", "tvshow");//完全匹配}}

2/3.

pub端:

package example.me.pubsub;

import redis.clients.jedis.jedis;

import redis.clients.jedis.jedispool;

import redis.clients.jedis.jedispoolconfig;

public

class

mypub catch(exception e)finally}}

3/3.

同時我們在 redis-cli 端也訂閱相同channel:

jedis-sub端:

redis-cli端:

4.1 - 本篇僅作為基礎,還有很多功能未展現.

4.2 - redis-clients-officialsite已有很多十分優秀的開源專案供參考.

雙端鍊錶的java實現

雙端鍊錶,一 什麼是雙鏈表 鍊錶中儲存著對最後乙個鏈結點引用的鍊錶 二 從頭部進行插入 要對鍊錶進行判斷,如果為空則設定尾結點為新新增的結點 三 從尾部進行插入 如果鍊錶為空,則直接設定頭結點為新新增的結點,否則設定尾結點的後乙個結點為新新增結點 四 從頭部進行刪除 判斷頭部結點是否有下乙個結點,如...

java整合hessian客戶端實現

廢話不多說 上 這是簡單寫了乙個客戶端呼叫的工具類 其中因為url還沒有確定 所以可以忽略。public class hessianproxyfactoryutil else return result 移除hessionclientbean param clazz public static vo...

Java單鏈表(雙端鍊錶)簡單實現

1 節點資料結構 public class linknode public linknode int value 2 單鏈表實現 public class singlelink public void insertfirst int value else public intdeletefirst ...