在 Redis Stream 中,查看 消费者组(Consumer Groups) 和 消费者(Consumers) 的命令如下:
1. 查看 Stream 的所有消费者组
使用 XINFO GROUPS
命令列出指定 Stream 的所有消费者组:
XINFO GROUPS <stream_key>
示例:
XINFO GROUPS mystream
输出示例:
1) 1) "name" # 消费者组名称
2) "mygroup"
3) "consumers" # 当前活跃的消费者数量
4) (integer) 2
5) "pending" # 未确认(PENDING)的消息数量
6) (integer) 3
7) "last-delivered-id" # 最后投递的消息 ID
8) "1630000000000-0"
9) "entries-read" # 已读取的消息数(Redis 7.0+)
10) (integer) 100
11) "lag" # 消息积压数(未消费的消息数,Redis 7.0+)
12) (integer) 5
2. 查看某个消费者组的所有消费者
使用 XINFO CONSUMERS
命令列出指定消费者组的所有消费者:
XINFO CONSUMERS <stream_key> <group_name>
示例:
XINFO CONSUMERS mystream mygroup
输出示例:
1) 1) "name" # 消费者名称
2) "consumer1"
3) "pending" # 该消费者未确认的消息数
4) (integer) 2
5) "idle" # 空闲时间(毫秒,无活动时间)
6) (integer) 36000
7) 1) "name"
8) 2) "consumer2"
9) 3) "pending"
10) 4) (integer) 1
11) 5) "idle"
12) 6) (integer) 1500
> xinfo consumers stream1 agroup
1) 1) "name"
2) "aconsumer"
3) "pending"
4) "0"
5) "idle"
6) "280750101"
---
> xinfo groups stream1
1) "name"
1) 2) "group_aa.mp4"
2) 3) "consumers"
3) 4) "1"
4) 5) "pending"
5) 6) "0"
6) 7) "last-delivered-id"
7) 8) "1743217447576-0"
2) 1) "name"
1) 2) "agroup"
2) 3) "consumers"
3) 4) "1"
4) 5) "pending"
5) 6) "0"
6) 7) "last-delivered-id"
7) 8) "1743219769467-0"
3. 查看未确认(PENDING)的消息
如果需要检查消费者组中 未确认(ACK)的消息,使用 XPENDING
:
XPENDING <stream_key> <group_name> [<start_id> <end_id> <count> [<consumer_name>]]
示例:
# 查看 mygroup 中所有未确认的消息(前 10 条)
XPENDING mystream mygroup - + 10
# 查看 consumer1 的未确认消息
XPENDING mystream mygroup - + 10 consumer1
xpending stream1 agroup - + 10
(empty list or set)
输出字段:
• 消息ID
、消费者名称
、空闲时间(毫秒)
、投递次数
。
4. 其他相关命令
命令 | 作用 |
---|---|
XINFO STREAM <stream_key> |
查看 Stream 的详细信息(长度、首个/最后一个 ID 等) |
XLEN <stream_key> |
查看 Stream 的消息总数 |
XRANGE <stream_key> <start_id> <end_id> |
按范围读取消息 |
XREVRANGE <stream_key> <end_id> <start_id> |
反向范围读取 |
总结
• 查看所有消费者组:XINFO GROUPS <stream_key>
• 查看组内消费者:XINFO CONSUMERS <stream_key> <group_name>
• 查看未确认消息:XPENDING <stream_key> <group_name>
• 监控消费者状态:结合 idle
(空闲时间)和 pending
(未确认数)判断消费者健康状态。
这些命令是 管理和监控 Redis Stream 消费者组 的核心工具,尤其在需要排查消息积压或消费者故障时非常有用。