2013-12-23 2 views

ответ

2

Речь идет о мастер-рабской репликации.

Нормальное поведение подчиненного устройства Redis (подчиненное командование или конфигурация) заключается в подключении к ведущему устройству, попросите мастера аккумулировать трассировку ведущего-подчиненного, запросить полный дамп файловой системы для мастера, загрузить эту дамп на ведомый, загрузить дамп и, наконец, воспроизвести накопленный трафик, пока подчиненный не догонит мастер.

Этот механизм достаточно прочный, но не очень эффективный, чтобы покрывать переходные соединения между ведомым и ведущим. Если ссылка «ведущий-ведомый» отключена на пару секунд, ведомое устройство запросит полную повторную синхронизацию (с использованием дампа и т. Д.), Даже если были пропущены только несколько команд.

Начиная с 2.8, Redis включает в себя механизм частичной репликации, позволяющий подчиненному устройству повторно подключаться к ведущему устройству, и если выполняются некоторые условия (например, переходное переходное соединение), запрашивает у хозяина повторную синхронизацию без необходимости сброса всего экземпляра памяти ,

Чтобы поддерживать эту функцию, мастер должен буферизировать и хранить отставание от команд, чтобы в любое время их можно было обслуживать в подчиненных устройствах. Если ведомое устройство слишком поздно позади ведущего устройства, отставание может больше не содержать требуемые данные. В этом случае выполняется обычная полная синхронизация, как в предыдущих версиях.

+0

Я хочу, чтобы, когда несколько команд были пропущены, если ссылка на ведущий-ведомый отключена на пару секунд, а подчиненный запросит полную повторную синхронизацию. Я имею в виду, что вы можете взять примеры. – baozailove

+0

Я имею в виду, что я Не обнаружите, что несколько команд были пропущены, когда Master и slave могут продолжить репликацию после того, как ссылка «ведущий-ведомый» отключится на пару секунд. – baozailove

+0

С точки зрения пользователя никакая команда не будет отсутствовать. В версиях до 2-8 будет выполняться полная повторная синхронизация, 2-8 или лучше будет выполнять частичную синхронизацию. Данные не будут потеряны. Однако, с точки зрения Redis, если ссылка не работает, трафик между ведущим и ведомым потерян. Вот почему необходима полная синхронизация или частичная синхронизация. –

Смежные вопросы