Не могли бы вы, пожалуйста, объяснить функцию репликации Redis

#redis

#redis

Вопрос:

Я очень новичок в реализации кэша REDIS.

  1. Не могли бы вы, пожалуйста, сообщить мне, что означает фактор репликации?
  2. Как это работает или каково влияние? Спасибо.

Ответ №1:

В основе репликации Redis (исключая функции высокой доступности, предоставляемые в качестве дополнительного уровня Redis Cluster или Redis Sentinel) лежит очень простая в использовании и настройке репликация leader follower (master-slave): она позволяет репликам экземпляров Redis быть точными копиями экземпляров master. Реплика будет автоматически повторно подключаться к ведущему устройству каждый раз, когда связь прерывается, и будет пытаться быть его точной копией независимо от того, что происходит с ведущим устройством.

Эта система работает с использованием трех основных механизмов:

  1. Когда экземпляры master и replica хорошо подключены, master обновляет реплику, отправляя поток команд в реплику, чтобы воспроизвести эффекты для набора данных, происходящие на стороне master из-за: записи клиента, истечения срока действия ключей или удаления, любого другого действия, изменяющего основной набор данных.
  2. Когда связь между ведущим сервером и репликой прерывается из-за проблем с сетью или из-за обнаружения тайм-аута в главном сервере или реплике, реплика повторно подключается и пытается выполнить частичную повторную синхронизацию: это означает, что она попытается просто получить часть потока команд, который она пропустила во время отключения.
  3. Когда частичная повторная синхронизация невозможна, реплика запросит полную повторную синхронизацию. Это потребует более сложного процесса, в ходе которого ведущему устройству необходимо создать моментальный снимок всех своих данных, отправить его в реплику, а затем продолжить отправку потока команд по мере изменения набора данных.

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

Синхронная репликация определенных данных может быть запрошена клиентами с помощью команды WAIT. Однако WAIT может гарантировать только наличие указанного количества подтвержденных копий в других экземплярах Redis, это не превращает набор экземпляров Redis в систему CP с высокой согласованностью: подтвержденные записи все еще могут быть потеряны во время отработки отказа, в зависимости от точной конфигурации сохранения Redis. Однако при использовании функции ОЖИДАНИЯ вероятность потери записи после события сбоя значительно снижается до определенных режимов, трудно вызываемых сбоем.