Обмен технологиями

7. Процесс репликации Redis master-slave

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Процесс репликации Redis master-slave

​ Когда узел Redis (подчиненный узел) получает инструкцию, аналогичную подчиненному 127.0.0.1 6380, до тех пор, пока он не сможет продолжить копирование данных с ведущего узла, он обычно выполняет следующий процесс:

1. Сохраните главный адрес

Когда ведомое устройство получает команду подчиненного устройства, ведомое устройство немедленно сохраняет новый главный адрес.

2. Установить соединение

Подчиненное устройство поддерживает запланированную задачу, которая попытается установить соединение сокета с главным устройством. Если соединение не может быть установлено, оно будет периодически повторять попытки до тех пор, пока соединение не будет успешным или пока не будет получена команда подчиненного устройства noone.

3. Ведомое устройство отправляет команду ping.

После успешного установления соединения ведомое устройство отправит команду ping для первого сеанса связи. Если ведомое устройство не получит ответа от ведущего, ведомое устройство активно отключится, и следующая запланированная задача повторит попытку подключения.

4. Проверьте личность подчиненного устройства.

Если мастер получает команду ping от подчиненного устройства, он не ответит на нее немедленно, а сначала выполнит аутентификацию.Если проверка не удалась, будет отправлено сообщение об отказе в соединении; если проверка прошла успешно, ведомому устройству будет отправлен ответ об успешном соединении.

5. Мастер настойчивости

После успешной первой связи ведомое устройство отправит мастеру запрос на синхронизацию данных. Когда мастер получает запрос, он выделяет дочерний процесс, чтобы дочерний процесс можно было немедленно сохранить в асинхронном режиме.

6. Отправка данных

После завершения персистентности ведущий выделит дочерний процесс и позволит дочернему процессу асинхронно отправлять данные подчиненному устройству. Ведомое устройство будет постоянно записывать полученные данные в локальный файл персистентности.

Во время процесса синхронизации данных ведомого устройства основной процесс ведущего устройства по-прежнему непрерывно принимает операции записи от клиента и не только записывает новые данные в память ведущего устройства, но и записывает их в кэш синхронизации. После отправки данных из файла персистентности ведущего устройства ведущий отправит новые данные из кэша синхронизации ведомому устройству, а ведомое устройство запишет их в локальный файл персистентности.Синхронизация данных завершена

7. Ведомый восстанавливает данные памяти.

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

8. Непрерывная инкрементная репликация

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