1

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

redis 命令

  • 绿色:大师
  • 蓝色:奴隶

看起来主 Redis执行的命令比从 Redis多 35%

它并不总是相同的距离。

以下是活动 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 的不必要的命令。

4

1 回答 1

2

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

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

如果你对master进行读写,并且只保留slave作为备份,或者持久化到磁盘,master会有更高的total_commands_processed.

事实上,主从拥有相同数量的total_commands_processed.

于 2012-02-14T16:58:29.160 回答