Redis master比Redis slave运行多个命令

时间:2012-02-14 15:53:06

标签: redis master-slave

我们正在Redis架构中获得一个非常有趣的图

redis commands

  • 绿色:主人
  • 蓝色:奴隶

看起来主Redis 正在执行 35%以上的命令 slave Redis

并不总是相同的距离。

以下是活动redis服务器日志的一部分:

[26911] 14 Feb 13:28:44 - DB 0: 2399 keys (417 volatile) in 16384 slots HT.
[26911] 14 Feb 13:28:44 - DB 1: 498 keys (498 volatile) in 1024 slots HT.
[26911] 14 Feb 13:28:44 - DB 2: 1 keys (0 volatile) in 4 slots HT.
[26911] 14 Feb 13:28:44 - 706 clients connected (1 slaves), 33794240 bytes in use

同时在药膏上:

[17748] 14 Feb 13:28:44 - DB 0: 2398 keys (417 volatile) in 16384 slots HT.
[17748] 14 Feb 13:28:44 - DB 1: 497 keys (497 volatile) in 1024 slots HT.
[17748] 14 Feb 13:28:44 - DB 2: 1 keys (0 volatile) in 4 slots HT.
[17748] 14 Feb 13:28:44 - 1 clients connected (0 slaves), 24839792 bytes in use

所以他们看起来几乎是1:1同步。

我们想知道哪个可能是造成这种差距的原因。此外,我们要问自己这是否意味着我们可以优化发送给Redis的不必要的命令。

1 个答案:

答案 0 :(得分:2)

这是一个可能的解释:total_commands_processed报告所有命令,读取,写入和服务器相关命令。只有写命令才会传播到从属设备。

在只写入主设备并从从设备读取的设置中,从设备上的total_commands_processed更高(所有读取+所有写入)。

如果您对主设备进行写入和读取,并且仅将从设备保留为备份,或者保留到磁盘,则主设备将具有更高的total_commands_processed

事实上,主设备和从设备具有相同数量的total_commands_processed是不太可能的。