我正在使用带有lua-resty的OpenResty;显然,对于每个请求,程序都有其自己的变量。为了在请求之间共享简单的字符串或配置,我目前使用lua-shared-dict。
但是,如果我需要在请求之间共享和维护一个大变量(例如,由大型INI文件解析而成的复杂表)(例如,每小时创建一个变量,以提高性能),那么可以吗
(例如:另一个示例,假设将其翻译成LUA:https : //github.com/dangrossman/node-browscap/blob/master/browscap.js;如何在多个OpenResty HTTP请求中维护browser []数组,不必为每个请求重新解析?)
如何在多个OpenResty HTTP请求中维护browser []数组,而不必为每个请求重新解析它?
我假设您的意思是“跨越多个OpenResty工作者”或“跨越可能击中不同工作者的请求”,因为命中同一工作者的所有请求都可以访问相同的变量,但是如果这样,您可能无法访问。由于您似乎只需要读取该browser[]值(在解析大型INI文件时),因此可以尝试一种混合方法:
iniFile)中。iniFile变量是否为nil,如果是,iniFile则从lua-shared-dict中读取值,反序列化并将其存储为iniFile所有运行代码共享的变量值由同一个工人。