Мы часто сталкиваемся с ситуацией: Redis-мастер падает, и приложение на несколько минут теряет кеш или сессии. Ручное переключение на реплику — это 5–15 минут простоя, потерянные транзакции и нервы. Без автоматизации приходится вручную логиниться на сервер, выполнять команды SLAVEOF NO ONE, перенастраивать клиентские приложения. Это отнимает время и чревато ошибками, особенно если инцидент происходит ночью или в выходной. Решение — Redis Sentinel: система, которая автоматически обнаруживает отказ мастера, назначает новую реплику мастером и оповещает клиентов. Sentinel в 10 раз быстрее ручного переключения — failover занимает 10-20 секунд. Клиентские библиотеки, такие как phpredis и predis, поддерживают автоматическое переключение на нового мастера без изменения кода. При правильной конфигурации приложение теряет не более 20 секунд соединения, а затем продолжает работу с новой репликой.
Почему нужно три Sentinel?
Sentinel использует алгоритм голосования: при потере связи с мастером каждый Sentinel предлагает повысить реплику. Решение принимается только при наличии кворума — большинства голосов. При двух Sentinel возможен split-brain (каждый считает своего кандидата мастером). Три сервера с quorum = 2 гарантируют корректный failover.
Как настроить Redis Master и Replica за 6 шагов
- Установите Redis на все три сервера (одинаковая версия, например 7.2).
- Настройте мастер — укажите пароли, лимит памяти, включите AOF.
- Настройте реплики — добавьте параметр
replicaof <master-ip> 6379. - Настройте Sentinel — создайте
sentinel.confс настройками монитора, пароля и таймаутов. - Запустите Sentinel на всех серверах командой
redis-sentinel /etc/redis/sentinel.conf. - Проверьте состояние — выполните
SENTINEL mastersи убедитесь, что мастер определён.
Пример конфига мастера (/etc/redis/redis.conf):
bind 0.0.0.0 port 6379 requirepass RedisPassword123 masterauth RedisPassword123 maxmemory 4gb maxmemory-policy volatile-lru appendonly yes appendfsync everysec protected-mode no Конфиг реплики — то же самое, но добавляем replicaof <master-ip> 6379 и replica-read-only yes.
Пример конфига Sentinel (/etc/redis/sentinel.conf на каждом сервере, меняется только sentinel announce-ip):
port 26379 daemonize yes logfile /var/log/redis/sentinel.log sentinel monitor mymaster <master-ip> 6379 2 sentinel auth-pass mymaster RedisPassword123 sentinel down-after-milliseconds mymaster 5000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 60000 sentinel notification-script mymaster /opt/redis/notify.sh sentinel announce-ip <server-ip> sentinel announce-port 26379 Как тестировать failover без риска?
Мы рекомендуем перед запуском в продакшен провести симуляцию:
- Остановите мастер:
systemctl stop redis. - Наблюдайте логи Sentinel — через 5–15 секунд должен начаться failover.
- Проверьте нового мастера:
SENTINEL master mymaster— полеipизменится. - Запустите старый мастер обратно:
systemctl start redis— он автоматически станет репликой нового мастера.
Типичные ошибки при тестировании:
- Не проверены пароли — failover может не сработать из-за auth-pass.
- Слишком большой down-after-milliseconds — задержка до 30 секунд.
- Отсутствует notification-script — вы не узнаете о смене мастера.
Что делать, если Sentinel не может достичь кворума?
Проверьте сетевые соединения между серверами (порты 26379 должны быть открыты). Убедитесь, что в конфиге указан правильный `sentinel announce-ip`. Если сервера за NAT, может потребоваться явное указание внешних IP. Для отладки используйте `SENTINEL ckquorum mymaster`.Сравнение: Sentinel vs. Redis Cluster
| Критерий | Redis Sentinel | Redis Cluster |
|---|---|---|
| Объём данных | Влезает в RAM одного сервера | Превышает RAM одного сервера |
| Отказоустойчивость | Автоматический failover | Автоматический failover и решардинг |
| Запись | Только мастер | Любой узел (шардирование) |
| Сложность настройки | Низкая | Высокая |
| Multi-key операции | Полная поддержка | Ограничены одним слотом |
Для 90% проектов с объёмом данных до 64 ГБ Sentinel — оптимальный выбор.
Сравнение времени простоя
| Метод | Среднее время простоя |
|---|---|
| Ручное переключение | 10 минут |
| Redis Sentinel | 15 секунд |
За счёт автоматизации вы экономите десятки часов в год и исключаете человеческий фактор.
Что входит в настройку под ключ
Мы предоставляем:
- Конфигурацию Master+Replica+Sentinel на 3 серверах
- Проверку кворума и механизма failover
- Настройку уведомлений (Telegram, email) при смене мастера
- Сценарий тестирования failover
- Интеграцию с клиентами (Laravel, Symfony, plain PHP)
- Документацию по эксплуатации
Более 50 проектов мы внедрили с Sentinel — опыт показывает, что 80% инцидентов решаются автоматически без участия инженера. Согласно официальной документации Redis Sentinel, эта конфигурация обеспечивает 99.9% доступности при правильной настройке.
Сроки и гарантии
Стандартная настройка Sentinel с тремя серверами, тестированием failover и интеграцией — от 1 до 2 рабочих дней. Стоимость рассчитывается индивидуально. Инвестиции окупаются за счёт сокращения простоев. Мы даём гарантию 30 дней на корректную работу схемы отказоустойчивости.
Закажите настройку Redis Sentinel — и забудьте о ручных переключениях. Получите консультацию инженера для расчёта стоимости вашего проекта.
Примечание: в конфигурациях выше используйте свои пароль и IP-адреса. Не забудьте открыть порты 6379 (Redis) и 26379 (Sentinel) в файрволе.







