#redis
#redis
Вопрос:
Я очень новичок в реализации кэша REDIS.
- Не могли бы вы, пожалуйста, сообщить мне, что означает фактор репликации?
- Как это работает или каково влияние? Спасибо.
Ответ №1:
В основе репликации Redis (исключая функции высокой доступности, предоставляемые в качестве дополнительного уровня Redis Cluster или Redis Sentinel) лежит очень простая в использовании и настройке репликация leader follower (master-slave): она позволяет репликам экземпляров Redis быть точными копиями экземпляров master. Реплика будет автоматически повторно подключаться к ведущему устройству каждый раз, когда связь прерывается, и будет пытаться быть его точной копией независимо от того, что происходит с ведущим устройством.
Эта система работает с использованием трех основных механизмов:
- Когда экземпляры master и replica хорошо подключены, master обновляет реплику, отправляя поток команд в реплику, чтобы воспроизвести эффекты для набора данных, происходящие на стороне master из-за: записи клиента, истечения срока действия ключей или удаления, любого другого действия, изменяющего основной набор данных.
- Когда связь между ведущим сервером и репликой прерывается из-за проблем с сетью или из-за обнаружения тайм-аута в главном сервере или реплике, реплика повторно подключается и пытается выполнить частичную повторную синхронизацию: это означает, что она попытается просто получить часть потока команд, который она пропустила во время отключения.
- Когда частичная повторная синхронизация невозможна, реплика запросит полную повторную синхронизацию. Это потребует более сложного процесса, в ходе которого ведущему устройству необходимо создать моментальный снимок всех своих данных, отправить его в реплику, а затем продолжить отправку потока команд по мере изменения набора данных.
Redis использует по умолчанию асинхронную репликацию, которая, учитывая низкую задержку и высокую производительность, является естественным режимом репликации для подавляющего большинства случаев использования Redis.
Синхронная репликация определенных данных может быть запрошена клиентами с помощью команды WAIT. Однако WAIT может гарантировать только наличие указанного количества подтвержденных копий в других экземплярах Redis, это не превращает набор экземпляров Redis в систему CP с высокой согласованностью: подтвержденные записи все еще могут быть потеряны во время отработки отказа, в зависимости от точной конфигурации сохранения Redis. Однако при использовании функции ОЖИДАНИЯ вероятность потери записи после события сбоя значительно снижается до определенных режимов, трудно вызываемых сбоем.