您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
redis XREADGROUP GROUP
发布时间:2021-11-14 20:54:10编辑:雪饮阅读()
使用 XREADGROUP GROUP 读取消费组中的消息,语法格式:
XREADGROUP GROUP group consumer [COUNT count] [BLOCK milliseconds] [NOACK] STREAMS key [key ...] ID [ID ...]
group :消费组名
consumer :消费者名。
count : 读取数量。
milliseconds : 阻塞毫秒数。
key : 队列名。
ID : 消息 ID。
实例:
从消费组consumer_group_1中读取消息 只读取1条 本次消费者名为consumer_1,在consumer_group_1消费组中所消费的队列是user1_user2_queue队列
127.0.0.1:6379> xreadgroup group consumer_group_1 consumer_1 count 1 streams user1_user2_queue >
1) 1) "user1_user2_queue"
2) 1) 1) "1636886085878-0"
2) 1) "field1"
2) "val1"
从消费组consumer_group_1中读取消息 不限制读取条数 本次消费者名为consumer_1,在consumer_group_1消费组中所消费的队列是user1_user2_queue队列
127.0.0.1:6379> xreadgroup group consumer_group_1 consumer_1 streams user1_user2_queue >
1) 1) "user1_user2_queue"
2) 1) 1) "1636886089222-0"
2) 1) "field1"
2) "val1"
2) 1) "1636886091931-0"
2) 1) "field1"
2) "val1"
从消费组consumer_group_1中读取消息 不限制读取条数 本次消费者名为consumer_1,在consumer_group_1消费组中所消费的队列是user1_user2_queue队列
127.0.0.1:6379> xreadgroup group consumer_group_1 consumer_1 streams user1_user2_queue >
(nil)
这次读取为空,因为user1_user2_queue队列总共也有3条数据,经过上面的两次读取操作后都已经读取完了:
127.0.0.1:6379> xrange user1_user2_queue - +
1) 1) "1636886085878-0"
2) 1) "field1"
2) "val1"
2) 1) "1636886089222-0"
2) 1) "field1"
2) "val1"
3) 1) "1636886091931-0"
2) 1) "field1"
2) "val1"
之前曾经还创建过这个消费组:
127.0.0.1:6379> xgroup create user1_user2_queue consumer_group_2 $
OK
这个消费组和上面的consumer_group_1消费组用的是同一个队列user1_user2_queue。
所以,虽然这里对于consumer_group_1消费组没有进行过读取,但是这里我们来读取,会发现也是读取不到东西的,应该是不同消费组,若消费队列相同,则一个组消费完了,另外一个组也就无法消费了:
127.0.0.1:6379> xreadgroup group consumer_group_2 consumer_1 count 1 streams user1_user2_queue >
(nil)
127.0.0.1:6379> xreadgroup group consumer_group_2 consumer_1 count 1 streams user1_user2_queue >
(nil)
127.0.0.1:6379> xreadgroup group consumer_group_2 consumer_1 count 1 streams user1_user2_queue >
(nil)
关键字词:redis,XREADGROUP,GROUP
下一篇:Redis 数据备份与恢复