假设我有一个流mystream和一个组mygroup,我如何获得未使用消息的长度?
mystream
mygroup
aij0ehis1#
不,那是不可能的。可以分别使用XINFO GROUPS and XINFO STREAM命令获取组和流中传递的最后一条消息ID。然而,没有返回流子范围长度的命令,如果存在这样的命令,可能需要线性时间复杂度,在这种情况下,它可能不会被实现。
XINFO GROUPS
XINFO STREAM
bf1o4zei2#
命令XINFO GROUPS mygroup将在响应中为滞后提供一个字段。根据文件:lag:流中仍在等待交付给组的消费者的条目数,如果无法确定该数目,则为NULL。如果您想知道为什么lag可以为null:在两种特殊情况下,此机制无法报告滞后:
XINFO GROUPS mygroup
在这两种情况下,组的读取计数器都被视为无效,返回值被设置为NULL,以表示延迟当前不可用。更多详细信息,请访问https://redis.io/commands/xinfo-groups/
2条答案
按热度按时间aij0ehis1#
不,那是不可能的。
可以分别使用
XINFO GROUPS
andXINFO STREAM
命令获取组和流中传递的最后一条消息ID。然而,没有返回流子范围长度的命令,如果存在这样的命令,可能需要线性时间复杂度,在这种情况下,它可能不会被实现。
bf1o4zei2#
使用
XINFO GROUPS
命令
XINFO GROUPS mygroup
将在响应中为滞后提供一个字段。根据文件:
lag:流中仍在等待交付给组的消费者的条目数,如果无法确定该数目,则为NULL。
如果您想知道为什么lag可以为null:
在两种特殊情况下,此机制无法报告滞后:
在这两种情况下,组的读取计数器都被视为无效,返回值被设置为NULL,以表示延迟当前不可用。
更多详细信息,请访问https://redis.io/commands/xinfo-groups/