Redis命令队列大小

时间:2013-03-12 21:21:14

标签: command redis queue

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

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

1 个答案:

答案 0 :(得分:3)

AFAIK,Redis中没有命令队列。

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

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

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

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

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