Redis命令队列大小

MKo*_*MKo 5 queue command redis

如何记录/测量Redis命令队列的大小。

Redis是单线程的,因此它按顺序运行命令,因为我猜那里有命令队列,存储传入的命令并逐一执行。SLOWLOG命令仅显示执行时间,所以问题是,是否有一种方法可以获取开始执行之前命令在队列中的时间。

Did*_*zia 5

AFAIK,Redis中没有命令队列。

当套接字上有要读取的内容时,将通知事件循环。Redis读取套接字,解析输入缓冲区并执行从输入缓冲区解码的命令。如果同时(在不同的套接字上)接收到多个命令,则它们将作为同一事件循环迭代的一部分按顺序进行处理。

无法评估待处理命令的确切数量。但是,有一种方法可以使用CLIENT LIST命令来评估仍要在输入缓冲区中处理的数据量。它对应于qbuf统计信息。

您还可以评估套接字缓冲区中仍要处理的数据量(Redis尚未读取的数据)。在Linux上,您可以使用/ proc / net / tcp中的统计信息。这是使用此策略的Python脚本的示例。

https://gist.github.com/dspezia/2344181

您可能必须使脚本适应您的系统。