Мастер Redis выполняет несколько команд больше, чем подчиненный Redis - PullRequest
1 голос
/ 14 февраля 2012

Мы получаем очень интересный граф в нашей архитектуре Redis.

redis commands

  • Зеленый: мастер
  • Синий:slave

Похоже, что master 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

и в то же время в salve:

[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 Ответ

2 голосов
/ 14 февраля 2012

Вот возможное объяснение: total_commands_processed сообщает обо всех командах, операциях чтения, записи и командах, связанных с сервером.Только подчиненные команды будут передаваться подчиненному (ым).

В установке, в которой вы только пишете в ведущее устройство и читаете из ведомого (ых), у вас будет более высокое значение total_commands_processed на ведомом устройстве.(s) (все чтения + все записи).

Если вы записываете и считываете данные с мастера и сохраняете только ведомое устройство в качестве резервной копии или сохраняете на диск, у мастера будет более высокое значение total_commands_processed.

На самом деле, очень маловероятно, что ведущий и ведомый будут иметь одинаковое число total_commands_processed.

...