nginx有跨进程共享一个字典的方法吗?
想在2个进程之间共享复杂的数据结构, 类似一个大json, 但需要针对某个字段修改,
目前勉强用把json-encode之后的字符串放到shared-dict里. 但效率不太高(主要是json-encode/decode)
有其他什么替代方案吗? 主要是在lua脚本里访问.
邀请回答


共2个回答
shared-dict(https://github.com/openresty/lua-nginx-module#lua_shared_dict)底层是用nginx slab管理的,每个块必须是序列化好的连续内存,所以复杂数据结构都需要做序列化处理。但json毫无疑问序列化速度是最慢的,你可以选用更快的序列化方案,比如protobuf
用 Openresty 的 shared-dict 比较方便,而且效率非常高,线上目前用的也是这个。
如果只是修改部分字段,可以考虑把字段拆分,