redis2_read_timeout
Директива `redis2_read_timeout` задаёт максимальное время чтения ответа от сервера Redis в миллисекундах.
Описание
Директива 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 испытывает сильную нагрузку.
Если используется совместно с другими директивами таймаута, убедитесь, что их значения согласованы, чтобы избежать непредвиденного поведения.