使用 redis 流,我可以按时间顺序读取多个流。每个流从一个时间点一直读取到该流中的最新点。我可以在多个流中获取最旧的项目
XREAD COUNT 1 STREAMS streamA streamB streamC 0-0 0-0 0-0
并从那里(注意返回的 id)继续消费选择流中的所有项目。将消费限制为每个流仅 1 个项目。
我怎样才能轻松地反向消耗多个流。从流中提示的最新项目开始并及时倒退,同时将每个流中的消费限制为仅 1 个项目?
使用 redis 流,我可以按时间顺序读取多个流。每个流从一个时间点一直读取到该流中的最新点。我可以在多个流中获取最旧的项目
XREAD COUNT 1 STREAMS streamA streamB streamC 0-0 0-0 0-0
并从那里(注意返回的 id)继续消费选择流中的所有项目。将消费限制为每个流仅 1 个项目。
我怎样才能轻松地反向消耗多个流。从流中提示的最新项目开始并及时倒退,同时将每个流中的消费限制为仅 1 个项目?
你不能,因为 Redis 从 6.0 版开始不提供这个 XREVREAD 命令。
最接近的是XREVRANGE,除了它一次只需要一个流。如果你真的想要,你可能需要编写一个 lua 脚本,这样你就可以提供多个流,让脚本循环流并调用 XREVRANGE 命令,然后立即生成结果。