keyval_zone
为在 NGINX 中存储键值对定义一个共享内存区。
Nginx module for the key-value store
·
stream
语法keyval_zone zone=name:size;
默认值none
上下文stream
参数1+
说明
NGINX 中的 keyval_zone 指令配置了一个共享内存区,可用于存储在相同上下文(http 或 stream)中被其他指令访问的键值对。这样可以在多个请求之间存储动态数据,而不必访问数据库或外部服务,借助内存存储来提高性能。指定的区域名称后面跟随所需的大小分配,用以确定为该区域保留的内存量。必须为内存分配足够的空间以处理预期数量的键值对。
要使用 keyval_zone 指令,应按语法 keyval_zone zone=name:size; 定义,其中 name 是内存区域的标识符,size 指示分配的内存(例如,32k)。然后可以将该区域与诸如 keyval 之类的其他指令一起使用,keyval 允许检索和设置与键关联的值,利用已定义的内存空间。变量展开的动态特性还允许基于其他变量创建复合键,使此功能在各种应用场景中高度灵活。
配置示例
http {
keyval_zone zone=one:32k;
keyval $arg_key $value zone=one;
server {
listen 80;
location / {
return 200 "$value";
}
}
}⚠
确保分配的内存足以容纳预计的键值对;否则数据可能无法正确存储。
⚠
复合键必须谨慎构造,以避免冲突或出现意外行为。
⚠
使用较大尺寸可能导致内存使用增加;请监控内存消耗。