【问题标题】:Redis commands queue sizeRedis 命令队列大小
【发布时间】:2013-02-28 14:59:16
【问题描述】:

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

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

【问题讨论】:

    标签: command redis queue


    【解决方案1】:

    AFAIK,Redis 中没有命令队列。

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

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

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

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

    您可能需要使脚本适应您的系统。

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2012-09-02
      • 2020-06-08
      • 2014-11-05
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多