OpenResty имеет встроенное хранилище значений ключей .Все данные совместно используются рабочими nginx совместно используемой памятью, поэтому это значительно быстрее, чем доступ к Redis.
Можно загрузить все необходимые значения в init_by_lua *.
Возможно, вам потребуется использовать некоторую библиотеку на основе cosocket для доступа к базе данных, API-интерфейс cosocket отключен в init_worker_by_lua *, но вы можете запустить таймер с нулевой задержкой как обходной путь .
Чтобы избежать избыточного опроса базы данных несколькими работниками nginx, вы можете запустить таймер только для первого работника nginx , когда ngx.worker.id == 0
.
Этот подход, конечно, работает только со статическими данными конфигурации.Я использую его в ряде проектов.