redis2_read_timeout

Директива `redis2_read_timeout` задаёт максимальное время чтения ответа от сервера Redis в миллисекундах.

Синтаксисredis2_read_timeout time;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива redis2_read_timeout задаёт продолжительность (в миллисекундах), в течение которой NGINX будет ждать ответа от сервера Redis до истечения времени ожидания операции. Она особенно важна в сценариях, где к Redis отправляются множественные или тяжёлые запросы, поскольку установка этого таймаута гарантирует, что если ответ не будет получен в указанный период, NGINX корректно разорвёт соединение, чтобы избежать зависших запросов.

Размещённая в контекстах http, server или location, эта директива принимает один аргумент, представляющий значение таймаута. Для оптимальной производительности и удобства пользователей критично настроить эту директиву в соответствии с ожидаемым временем ответа вашего экземпляра Redis. Слишком короткий таймаут может привести к ненужным ошибкам, тогда как слишком длинный — к неотзывчивости для пользователей, если сервер Redis медленно отвечает.

На практике рекомендуется настраивать этот таймаут совместно с другими директивами, связанными с таймаутами, такими как redis2_connect_timeout и redis2_send_timeout, для всесторонней обработки таймаутов и формирования полной стратегии таймаутов при взаимодействии с Redis.

Пример конфига

http {
    server {
        location /example {
            redis2_pass 127.0.0.1:6379;
            redis2_read_timeout 5000;  # 5 seconds
            redis2_query get example_key;
        }
    }
}

Установка этого таймаута слишком низким может привести к тому, что законные запросы не будут обработаны, если Redis испытывает сильную нагрузку.

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

← Ко всем директивам