感覺還是用思維導圖總結 更加方便/更方便以後回看 補充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...