keyval_zone
Определяет зону общей памяти для хранения пар ключ-значение в NGINX.
Описание
Директива keyval_zone в NGINX настраивает зону общей памяти, которая может использоваться для хранения пар ключ-значение и быть доступной другим директивам в том же контексте (http или stream). Это позволяет хранить динамические данные между несколькими запросами без обращения к базе данных или внешнему сервису, повышая производительность за счёт использования оперативной памяти. Указанное имя зоны сопровождается требуемым объёмом памяти, который определяет, сколько памяти резервируется для этой зоны. Память должна быть выделена в достаточном объёме, чтобы справиться с ожидаемым количеством пар ключ-значение.
Для использования директивы keyval_zone её следует определить с синтаксисом keyval_zone zone=name:size;, где name — идентификатор зоны памяти, а size указывает выделяемый объём памяти (например, 32k). Эта зона затем может использоваться совместно с другими директивами, такими как keyval, которая позволяет получать и задавать значения, связанные с ключами, используя определённое пространство памяти. Динамическая природа расширения переменных также позволяет создавать составные ключи на основе других переменных, делая эту возможность весьма универсальной для различных приложений.
Пример конфига
http {
keyval_zone zone=one:32k;
keyval $arg_key $value zone=one;
server {
listen 80;
location / {
return 200 "$value";
}
}
}Убедитесь, что выделенной памяти достаточно для ожидаемого количества пар ключ-значение; в противном случае данные могут не сохраняться правильно.
Составные ключи должны формироваться с осторожностью, чтобы избежать конфликтов или непредвиденного поведения.
Использование больших размеров может привести к повышенному потреблению памяти; следите за потреблением памяти.