回答
收藏
分享
举报
nginx有跨进程共享一个字典的方法吗?
提问于2020-05-18 22:44

浏览 4.2k

想在2个进程之间共享复杂的数据结构, 类似一个大json, 但需要针对某个字段修改, 

目前勉强用把json-encode之后的字符串放到shared-dict里. 但效率不太高(主要是json-encode/decode)


有其他什么替代方案吗? 主要是在lua脚本里访问.

已修改于2023-03-15 04:43



写下您的回答
发表回答
全部回答(2)

按点赞数排序

按时间排序

shared-dict(https://github.com/openresty/lua-nginx-module#lua_shared_dict)底层是用nginx slab管理的,每个块必须是序列化好的连续内存,所以复杂数据结构都需要做序列化处理。但json毫无疑问序列化速度是最慢的,你可以选用更快的序列化方案,比如protobuf

赞同

3

回复举报

回答于2020-12-07 19:06



回复陶辉
回复

用 Openresty 的 shared-dict 比较方便,而且效率非常高,线上目前用的也是这个。

    如果只是修改部分字段,可以考虑把字段拆分,

    

赞同

3

回复举报

回答于2020-05-20 16:06



回复头号游戏教父B哥
回复
提问者
张炎泼
这家伙很懒还未留下介绍~
5
文章
1
问答
7
粉丝
相关问答

求大佬解惑

点赞 0
浏览 3.2k

当然可以,用$1/$2这样的形式获取location里匹配的子表达式

点赞 0
浏览 3.2k