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 会根据消费者组的配置和负载均衡策略来分配消息。