redis 流 stream的使用总结 - 消费者组
本博客講述如何使用redis中流stream的組
簡言
1. 消費者組(consumer group)允許用戶將一個流從邏輯上分成多個不同的流,并讓消費者組組下的消費者去處理組中的消息
2. 多個消費者組可以共享同一個流中的元素;但同一個消費者組中的每條消息只能有一個消費者,即不同的消費者將獨占組中不同的消息,當一個消費者讀取了組中的一條消息后,其他消費者將無法讀取這條消息
3. 就目前使用來看,一個流擁有一個消費者組是正常的,至于什么情況下需要使用多個消費者組還沒發現,敬請指教
?
redis流stream使用系列文章
第一篇?redis 流 stream的使用總結 - 基礎命令
第二篇?redis 流 stream的使用總結 - 如何遍歷
?
這篇主要講述的命令
8.1 XGROUP CREATE 創建消費者組
8.2 XREADGROUP GROUP 讀取消費者組中的消息
8.3 XACK?將消息標記為“已處理”
8.4 XGROUP SETID 為消費者組設置新的最后遞送消息ID
8.5 XGROUP DELCONSUMER 刪除消費者
8.6?XGROUP DESTROY 刪除消費者組
8.7 XPENDING 顯示待處理消息的相關信息
8.8 XCLAIM 轉移消息的歸屬權
8.9 XINFO 查看流和消費者組的相關信息;XINFO GROUPS 打印消費者組的信息; XINFO STREAM 打印流信息
?
具體用法及示例
8.1?XGROUP CREATE 創建消費者組
????格式:XGROUP?CREATE?stream?group?start_id
? ? 注釋:stream參數用于指定流的名字,group參數用于指定消費者組的名字,start_id參數用于指定元素的起始ID,決定了從流的哪個元素進行讀取;0表讀取所有消息;10000表讀取大于10000的所有消息;$表讀取流中大于所有ID的消息,即只讀新消息
? ??例如(在流s1中創建一個消費者組group1,該消費者組讀取流中所有的消息):
? ??
? ? 注意:只能為已經存在的流創建消費者組,如果用戶給定的流不存在,那么將返回一個錯誤
? ? 例如:流not-exists-stream不存在
8.2?XREADGROUP GROUP 讀取消費者組中的消息
? ??格式:XREADGROUP?GROUP?group1 comsumer1 s1 0
8.3?XACK?將消息標記為“已處理”
?
8.4?XGROUP SETID 為消費者組設置新的最后遞送消息ID
?
8.5 XGROUP DELCONSUMER 刪除消費者
?
8.6?XGROUP DESTROY 刪除消費者組,成功執行返回1,組不存在返回0,流不存在則報錯
? ? 格式:XGROUP DESTROY stream group
? ? 例如:第一次刪除成功返回1;第二次流s2不存在報錯;第三次group2不存在返回0;第四次因group1已被刪除故不存在返回0
? ? 注意:為了保證程序的正確性,用戶需保證在刪除消費者組時,組中已經沒有任何待處理消息
?
總結
以上是生活随笔為你收集整理的redis 流 stream的使用总结 - 消费者组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis 流 stream的使用总结
- 下一篇: consul历史版本下载地址