Настройка Sentinel
Тема дорожной карты · Redis
Настройка Redis Sentinel требует развёртывания как минимум трёх процессов Sentinel — каждый со своим sentinel.conf — для мониторинга первичного Redis и его реплик и обеспечения автоматического переключения при сбое in-memory хранилища. Минимальная конфигурация в каждом sentinel.conf — строка sentinel monitor mymaster <master-ip> 6379 2, указывающая каждому Sentinel отслеживать заданный первичный Redis с кворумом два, а также sentinel down-after-milliseconds mymaster 5000 для определения окна обнаружения отказа. Sentinel автоматически обнаруживают друг друга через Pub/Sub-канал первичного, поэтому достаточно указать каждому Sentinel адрес первичного — они самоорганизуются в кластер мониторинга. Клиенты подключаются к Redis Sentinel, запрашивая SENTINEL get-master-addr-by-name mymaster для получения текущего адреса первичного, который меняется в процессе переключения; большинство клиентских библиотек Redis обрабатывают это прозрачно через пулы соединений с поддержкой Sentinel. Корректно настроенный Redis Sentinel обеспечивает автоматическое переключение при сбое в течение секунд и является рекомендуемым решением высокой доступности для однофрагментных Redis-развёртываний, используемых как распределённые кэши или хранилища сессий.
Как это работает
Настройка Sentinel даёт автоматический failover для не-cluster Redis-деплоев. Sentinel-процесс мониторит master + реплики; если master лёг (quorum-согласие), Sentinel промоутит реплику + переконфигурирует клиентов. Клиенты подключаются к Sentinel чтобы узнать текущего master ("спросите Sentinel, кто primary сейчас"). Типичный setup: 3 Sentinel (нечётное число для quorum) + 1 master + 1-2 реплики на разных хостах/зонах.
Когда применять
Sentinel — когда хотите HA без операционной сложности Cluster: один датасет, влезает в одну ноду, нужен только failover. Для данных > одного хоста — Cluster. Для managed Redis cloud-провайдер сам обрабатывает failover через свою инфру — Sentinel сами не настраиваете. Sentinel всегда на разных failure domain (хосты, стойки, зоны).
Типичные ошибки
Ловушки Настройка Sentinel: 2 Sentinel (нет quorum при split-brain — нужно 3+); Sentinel на одном хосте с Redis (потеря одного хоста уносит обоих); не тестируют failover-путь (Sentinel, никогда не failover-ивший — просто работающий процесс); клиенты, навсегда закешировавшие master endpoint (после failover говорят с репликой, которая отвечает READONLY).