Redis篇之第(三)幕 訊息佇列

2021-10-22 23:21:34 字數 905 閱讀 4058

redis的pub-sub模式是快產快銷的,因為用的記憶體做訪問,產生的訊息立馬被消費者一次性處理掉,沒有痕跡的,也不能無限制使用記憶體。

如果是如下場景,倒是可以考慮用redis:

① 需求是快產快銷的即時消費場景;

② 十分在意速度;

③ 允許訊息丟失;

④ 不在意操作痕跡;

⑤ 資料量不大。

lpush:把訊息加到佇列頭部去。

brpop:從佇列末端取出訊息,是阻塞模式(bpop是非阻塞)。

① 實現簡單;

② 可以持久化,能檢視到,但不能重複消費;

③ 順序得到保證;

④ rpush可以把訊息加到佇列末尾,lpush把訊息加到佇列頭部,達到優先消費的目的。

① 消費確認ack比較麻煩,不能解決消費者讀取後但還沒處理時宕機的問題,導致訊息意外丟失,通常自己維護乙個pending表,保證ack。

② 不能廣播;

③ 不能重複消費,一消費完了就刪掉了;

④不能分組消費,得自己在業務裡寫。

subscribe:訂閱通道。

publish:向通道發布訊息。

unsubscribe:取消訂閱。

① 廣播模式;

② 乙個消費者可以訂閱多個通道;

③訊息即時傳送,不等訊息者主動讀取,消費者都是從通道發布的訊息中自動接收的。

zadd key score member:加入集合。

zrangebyscore:根據score獲取成員。

①自定義訊息id。

①不允許重複消費(集合),訊息id有錯誤時會導致訊息順序錯誤。

xadd:新加訊息。

xread:從訊息佇列中讀取訊息。

①stream型別的redis就是為了做訊息佇列的,自動生成訊息id、分組消費、ack、訊息轉義、佇列監控等。

Kerberos認證工作之第三幕

第三幕 第二天一早,athena在咖啡間遇上了euripides。在euripides倒咖啡的時候,athena拍了拍euripides.athena 我有了乙個新的charon的版本來解決我們的問題。euripides 真的嗎?好快呀。athena 好,你看,這些問題困擾了我一夜。euripide...

可消費訊息數量 訊息佇列之Kafka概念篇

1.基本定義 kafka是乙個分布式的 可分割槽的 可複製的訊息系統。它提供了普通資訊系統的功能,但具有自己獨特的設計 2.底層原理 2 topic與訊息 這樣,訊息就以乙個個id的方式,組織起來。consumer選擇乙個topic,通過id指定從哪個位置開始消費訊息。消費完成之後保留id,下次可以...

MFC 基礎篇 第三章 MFC訊息對映機制

windows應用程式的輸入由windows系統以訊息的形式傳送給應用程式的視窗.這些視窗通過視窗過程來接收和處理訊息,然後把控制權還給windows 從訊息的傳送途徑上看,訊息分兩種 佇列訊息和非佇列訊息 佇列訊息送到系統訊息佇列,然後到執行緒訊息佇列,最後送給目的視窗過程 非佇列訊息直接送給目的...