使用 XREADGROUP 获取指定的 id

Use XREADGROUP to get the id specified

我想知道是否有命令或参数可以用来获取指定 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 而我不希望这样。

Redis本身并没有提供你所要求的功能。所以你可能不得不 使用像

这样的东西

XREADGROUP GROUP mygroup myconsumer COUNT 1 个流 mystream 12344-99999

而不是“12345-0”

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