Описать проблему ↗

Сбои и доступность

Laravel: Redis connection refused ломает сайт и сессии

Laravel сообщает Redis connection refused, пропадают сессии или падают страницы. Объясняем, какие функции зависят от Redis и что проверить в подключении.

Редакция «починимсайт» · Обновлено · 3 мин. чтения

Что происходит и с чего начать

Redis может использоваться для кеша, очереди и хранения сессий. Поэтому его недоступность влияет на разные части проекта по-разному. Ошибка connection refused обычно указывает на отказ установить соединение с выбранным адресом, но конкретную причину нужно проверять в окружении приложения. Начните с того, что изменилось: служба, порт, контейнеры или конфигурация. Не заменяйте хранилище сессий и не очищайте Redis целиком ради исчезновения сообщения: это может затронуть вход пользователей и незавершённые задания.

Что можно проверить самостоятельно

  1. Запишите время и затронутые функции: страницы, вход, корзина или очередь. Это помогает понять, для каких данных Redis применяется именно в вашем проекте.
  2. Сообщите о переносе, изменении контейнеров и перезапуске служб. Уточните, совпадают ли ошибки у веб-запросов и фоновых обработчиков, которые могут читать разные настройки.
  3. Проверьте состояние сервиса в панели или у администратора. Не выполняйте команды полной очистки: в одном хранилище могут находиться не только временные копии страниц.

Как понять результаты проверки

Разработчик проверяет адрес, порт, доступность и параметры подключения из того же окружения, где запускается Laravel. Успешный тест с хост-сервера не всегда подтверждает доступ из контейнера. После восстановления соединения нужно проверить, не потеряны ли состояния сессий и очередей и какая конфигурация загружена долгоживущими процессами. Если меняется способ хранения, последствия обсуждают отдельно. Правильное решение объясняет источник отказа и обеспечивает штатный запуск зависимости, а не держится на разовой ручной команде в терминале.

Что проверяет разработчик

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

  1. Проверьте адрес, порт и доступность Redis из окружения приложения. В контейнере localhost указывает на сам контейнер, а не соседнюю службу.
  2. Сопоставьте отказ подключения с состоянием процесса, сетевыми правилами и журналом Redis. Ошибка соединения отличается от ошибки авторизации.
  3. Сверьте фактическую конфигурацию веба и worker. После изменения окружения один процесс может продолжать использовать старые параметры.

На что обратить внимание

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

Как исправляют причину

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

Как убедиться, что проблема решена

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

Проверьте вход и переходы между страницами, создание и выполнение задания, чтение обновляемых данных. Если служба должна стартовать автоматически, протестируйте её согласованный перезапуск. Сверьте незавершённую очередь отдельно от новых тестов. Восстановленное соединение — первый результат; окончательный включает корректную работу функций, которые зависели от Redis, без случайного удаления пользовательского состояния при диагностике.