XREADGROUP
是 Redis 中的一個命令,用于從多個消費者組中讀取消息
以下是使用 XREADGROUP
的基本步驟:
XGROUP CREATE group_name consumer_name ID
其中,group_name
是消費者組的名稱,consumer_name
是消費者的名稱,ID
是一個可選的消費者組 ID。如果提供了消費者組 ID,它將嘗試將該消費者添加到現有的消費者組中。否則,將創建一個新的消費者組。
XADD stream_name field value [field value ...]
其中,stream_name
是流的名稱,field
和 value
是消息的字段和值。
XREADGROUP
從消費者組中讀取消息:XREADGROUP GROUP group_name consumer_name COUNT count STR stream_name [stream_name ...]
其中,COUNT
是一個可選參數,表示要讀取的消息數量。STR
表示按字符串模式讀取消息。如果不指定 STR
,則按字段名讀取消息。
以下是一個示例:
# 創建消費者組
XGROUP CREATE my_group my_consumer 0
# 發布消息到流
XADD my_stream name Alice "Hello, Redis!"
XADD my_stream name Bob "Hi, Redis!"
# 從消費者組中讀取消息
XREADGROUP GROUP my_group my_consumer COUNT 1 STR my_stream
這將返回一個包含已讀取消息的列表,例如:
1) 1) "my_stream"
2) 1) "name"
3) "Alice"
4) "Hello, Redis!"
請注意,XREADGROUP
命令返回的消息順序可能與發布順序不同,因為 Redis 會根據消費者組的配置和負載均衡策略來分配消息。