redis訊息佇列學習

2021-10-05 01:53:53 字數 2423 閱讀 9657

感覺還是用思維導圖總結 更加方便/更方便以後回看 補充

reids思維導圖版

事先準備的callredisdemo類以及callwithjedis介面

public

class

callredisdemo

// 執行

// 執行失敗 --> 請求重試(這樣語法糖就不能用了 試太多也沒意思 估計有問題)

public

void

execute

(callwithjedis callwithjedis)}}

public

inte***ce

callwithjedis

>

>

>

redis.clientsgroupid

>

>

jedisartifactid

>

>

3.2.0version

>

>

jartype

>

>

compilescope

>

dependency

>

>

>

org.projectlombokgroupid

>

>

lombokartifactid

>

>

1.18.12version

>

>

providedscope

>

dependency

>

>

>

com.fasterxml.jackson.coregroupid

>

>

jackson-databindartifactid

>

>

2.10.3version

>

dependency

>

dependencies

>

@data

@tostring

public

class

message

@allargsconstructor

public

class

delaymsgsqueue

catch

(jsonprocessingexception e)

}/**

* @description: 消費訊息 當不中斷時 利用zrangebyscore 每次只獲取乙個成員

* else:

* 佇列讀取 在判斷是否可移除

* 若可移除(反序列化 轉化為物件) 列印訊息

* @param:

* @return:

* @author:

* @date:

*/public

void

loop()

catch

(interruptedexception e)

continue;}

// 佇列中有訊息 讀取

string next = strings.

iterator()

.next()

;// zrem key member [member ...]

// 移除成功1個 返回1 假如是n個 返回n

if(jedis.

zrem

(queue, next)

>

0&& jedis.

zrem

(queue, next)

<2)

catch

(jsonprocessingexception e)}}

}}

public

class

delaymsgtest}}

;// 消費者

thread consumer =

newthread()

}};// 執行執行緒

provider.

run();

consumer.

run();

// 等待一會 執行結束 中斷消費者執行緒

trycatch

(interruptedexception e)});}}

Redis訊息佇列

redis的訊息佇列使用簡單,沒有什麼配置,比activemq要輕量級太多,當然功能也比較簡單,如果只需要簡單的訂閱以及發布,可以考慮使用它。訂閱操作 命令為 subscribe channel channel 如 1 所示,即成功訂閱頻道 redis.blog 發布操作 命令為publish ch...

Redis 訊息佇列

訊息佇列,是在構建大型專案的時候 經常會用到的中間價系統,使用訊息佇列有很多好處,例如 1.實現各元件之間的松耦合。利用訊息系統可以使各個元件之間面向資料,而不是面向具體的介面。2.易於擴充套件。對於訊息系統而言,消費者和生產者都可以橫向擴充套件。提到佇列,很自然的就會想到redis的列表型別,可以...

Redis訊息佇列

redis的訊息佇列使用簡單,沒有什麼配置,比activemq要輕量級太多,當然功能也比較簡單,如果只需要簡單的訂閱以及發布,可以考慮使用它。訂閱操作 命令為 subscribe channel channel 如 1 所示,即成功訂閱頻道 redis.blog 發布操作 命令為publish ch...