redis 了解 xreadgroup 指令

wpx232ag  于 2022-11-21  发布在  Redis
关注(0)|答案(1)|浏览(290)

我已经用python编写了redis stream consumerminimal code看起来如下:

key = 'order_completed'
group = 'inventory_group'

redis.xgroup_create(key, group)  #statement1

result = redis.xreadgroup(group, key, {key: '>'}, None) #statement2

我需要帮助来理解最后两个语句。

我有限的理解是redis.xgroup_create(key, group)正在创建consumer group.
并且,redis.xreadgroup(group, key, {key: '>'}, None)用于读取流中的最新条目。
什么是{key: '>'}
我已经阅读了xreadgroup,但无法从中理解太多。

rggaifut

rggaifut1#

>特殊流条目ID使XREADGROUP只返回从未传递给组中任何用户的流条目-基本上,它将只返回新条目
除了>之外,该命令还接受任何其他常规流条目ID:在这种情况下,XREADGROUP会传回已经传送给呼叫消费者的数据流项目,其ID大于传递的值。
command documentation
当使用XREADGROUP时,要在STREAMS选项中指定的ID可以是以下两个ID之一:

  • 特殊的〉ID,这意味着消费者只想接收从未发送给任何其他消费者的消息。它只是意味着,给予我新的消息。
  • 任何其他的ID,也就是0或者任何其他有效的ID或者不完整的ID(只有毫秒时间部分),都将具有这样的效果:对于发送命令的使用者,返回的条目是挂起的,并且ID大于提供的ID。所以基本上,如果ID不是〉,那么命令将只允许客户端访问它的挂起条目:消息已传递给它,但尚未确认。请注意,在这种情况下,BLOCK和NOACK都将被忽略。

相关问题