如何使用OpenResty(nginx)减少数据访问时间

时间:2018-12-28 09:31:22

标签: nginx openresty

我需要根据数据库中的配置信息使用nginx代理到不同的后端服务器。一种方法是使用另一个程序在Redis中写入数据,并使用OpenResty在Redis中访问数据。

为减少访问时间,是否有更好的方法来访问数据,例如使用OpenResty将数据存储在本地内存中并在本地内存中访问该数据?

1 个答案:

答案 0 :(得分:0)

OpenResty具有内置key-value storage。所有数据都是通过共享内存在Nginx Worker之间共享的,因此比访问Redis更快。

可以将所有必需的值加载到init_by_lua*中。

可能您将需要使用一些基于cosocket的库来访问数据库,而cosocket API在 init_worker_by_lua*,但您可以将延迟为零的计时器触发为workaround

为避免多个nginx工作者进行冗余数据库轮询,您可以仅在ngx.worker.id == 0时启动first nginx worker的计时器。

当然,此方法仅适用于静态配置数据。我在许多项目中都使用它。