首頁 > 資料庫 > Redis > 主體

怎麼理解redis訊息隊列

silencement
發布: 2019-06-17 15:13:12
原創
3924 人瀏覽過

怎麼理解redis訊息隊列

隊列

是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和堆疊一樣,佇列是一種操作受限的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。

訊息佇列

是在訊息的傳輸過程中保存訊息的容器。 (redis教學)

redis中的訊息佇列

redis中可以使用自帶的publish和subscribe指令完成「訊息推播」和“訊息拉取”功能,實作訊息佇列。但這種方式有一個缺陷就是,消費者必須一致在線,否則會出現消費遺漏。

訊息佇列 一般是採用一個獨立的叢集專門用於訊息存儲,可以儲存在記憶體裡 也可以直接儲存在磁碟中。例如常見的:RabbitMQ、kafka、rocketMQ、ActiveMQ、zeromq等等,它們有不同的特性,以及採用了各種不同的實現,適用於各種場景的訊息任務分發。但他們本質作用跟上面講的單一實例環境中java「隊列」沒什麼兩樣:在訊息的傳輸過程中保存訊息的容器。只是這裡轉換到「分散式」環境而已。

redis中的list(本質上是雙向鍊錶)、zset(有序set)都可以用做「訊息佇列」的容器,稍加處理就可以實現一個高可用的「訊息佇列」。使用redis實現的「輕量化」訊息佇列」有三大優勢:

1、現在redis已廣泛運用於各大系統中,無需再次引入其他第三方框架和api。

2、且redis是基於記憶體儲存的,生產者和消費者的存取速度都非常快。

3、使用redis叢集的容量,可以透過新增實例進行擴充。

滿足以上三點要求,就可以實作一個簡單的「訊息佇列」了。

以上是怎麼理解redis訊息隊列的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板