0

我想知道是否有一个命令或参数可以用来获取指定的 RecordId 的消息,例如

XREADGROUP GROUP mygroup myconsumer COUNT 1 STREAMS mystream 12345-0

我想要 ID 为 12345-0 的消息,但似乎我收到了 12345-0 之后的第一条消息。

我不能使用 XRANGE,因为它不会更新 deliveryCount 和 lastDeliveryTime,而且它似乎不理解消费者群体的概念。

我也知道

XREADGROUP GROUP mygroup myconsumer STREAMS mystream 0

这给了我所有待处理的消息,但这会更新所有消息的deliveryCount,我不希望这样。

4

1 回答 1

0

Redis 本身不提供您要求的功能。因此,您可能不得不使用类似的东西

XREADGROUP GROUP mygroup myconsumer COUNT 1 STREAMS mystream 12344-99999

而不是“12345-0”

Redis Stream 返回的 entry id 格式为millisecondsTime-sequenceNumber。由于您不太可能在一毫秒内插入 99999 个项目,因此您可以确保获得正确的项目。

于 2020-07-10T09:36:42.957 回答