Redis的Stream型別,高效地實現訊息佇列

2021-09-13 15:16:13 字數 552 閱讀 3478

redis5.0中發布了stream型別,乍一看,是流資料型別,第一反應是流式資料型別,例如儲存二進位制內容。但是錯了,redis提供的stream型別,類似於訊息佇列,用於生產和消費訊息,應該是乙個比較完美的訊息佇列mq的實現。下面就對stream型別和訊息佇列的問題進行說明。

本文介紹了,基於stream型別的生成和消費訊息的基本操作,以及redis生成的訊息id格式。後面還有,mq的消費組模式,以及redis實現mq的其他方案及其對比。

1 概述

2 追加新訊息,xadd

3 從訊息佇列中獲取訊息,xread

4 訊息id說明

5 消費者組模式 命令一覽

1 概述 redis5.0帶來了stream型別。

從字面上看是流型別,但其實從功能上看,應該是redis對訊息佇列(mq,message queue)的完善實現。用過redis做訊息佇列的都了解,基於reids的訊息佇列實現有很多種,例如:

pub/sub,

訂閱/發布模式

基於list的 lpush+brpop 的實現

基於sorted-set的實現

流 流複製 stream 高可用

流是一種佇列技術,資料共享技術,複雜而豐富,災難恢復,負載平衡。流技術有一定的獨創性,可能是高可用性領域的將來。配置好流之後,會有乙個後台程序,捕獲程序。讀取重做日誌流並蒐集發現的dml與ddl語句。然後將其轉換成一種特定的格式,稱為邏輯變更記錄 logical change record,lcr ...

Redis的高可用

1.持久化 主要作用是資料備份,將資料儲存在硬碟,保證資料不會因程序退出而丟失 2.複製 哨兵和集群都是在複製的基礎上實現高可用的,複製主要實現了資料的多機備份,以及對於讀操作的負載均衡和簡單的故障恢復 缺陷 故障恢復無法自動化,寫操作無法負載均衡,儲存能力受到單機的限制 3.哨兵 在複製的基礎上,...

redis 高可用切換 Redis高可用使用方法二

redis高可用使用方法一 redis高可用使用方法三 之前是主從模式下,但如果考慮到主從切換時,對於開發者來說需要更換配置檔案,是乙個不明智的選擇 而官方提供了哨兵模式 當然在官方不提供的前提下方式是有多種解決的 dns,四層等 一 哨兵的配置 cd redis 4.0.12 切換到之前解壓的目錄...