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