shm_kv
`shm_kv` 指令允许为在 NGINX 中使用的 Wasm 模块定义一个共享内存键值存储。
Proxy-Wasm support for Nginx powered by wasmtime
语法shm_kv name size [expire];
默认值none
上下文
参数2-3
说明
shm_kv 指令在 NGINX Proxy-Wasm 模块中便于创建共享内存键值存储机制。该指令适用于保存需要快速访问并可在不同工作进程之间共享的数据,从而实现快速的进程间通信,而无需依赖外部数据库。定义后,这个内存空间可以被在 NGINX 中运行的 WebAssembly 模块访问和操作,允许开发者在其 WebAssembly 逻辑中实现缓存策略、会话存储或应用状态管理。
shm_kv 指令接受两个或三个参数:共享内存区域的名称、内存区域的大小,以及一个可选的第三个参数,用于以秒为单位定义键的过期策略。该指令定义的键空间对在 NGINX 中运行的所有应用实例可见,确保数据能在请求和用户之间高效共享。必须谨慎管理此共享内存,因为过度使用可能导致性能瓶颈或工作进程间的内存分配问题。
配置示例
shm_kv my_shared_memory 128m;
⚠
在未正确分配内存大小的情况下使用 shm_kv 指令可能导致意外行为或崩溃。
⚠
确保共享内存大小满足需求,以避免出现内存分配错误。
⚠
过度使用共享内存可能导致工作进程之间出现争用,从而降低性能。