Как использовать OpenResty (nginx) для сокращения времени доступа к данным - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно использовать nginx для прокси на другой сервер в соответствии с информацией о конфигурации в базе данных.Одним из способов является использование другой программы для записи данных в Redis и использование OpenResty для доступа к данным в Redis.

Чтобы сократить время доступа, существует ли лучший способ доступа к данным, например, для хранения данныхв локальной памяти, используя OpenResty и доступ к этим данным в локальной памяти?

1 Ответ

0 голосов
/ 03 января 2019

OpenResty имеет встроенное хранилище значений ключей .Все данные совместно используются рабочими nginx совместно используемой памятью, поэтому это значительно быстрее, чем доступ к Redis.

Можно загрузить все необходимые значения в init_by_lua *.

Возможно, вам потребуется использовать некоторую библиотеку на основе cosocket для доступа к базе данных, API-интерфейс cosocket отключен в init_worker_by_lua *, но вы можете запустить таймер с нулевой задержкой как обходной путь .

Чтобы избежать избыточного опроса базы данных несколькими работниками nginx, вы можете запустить таймер только для первого работника nginx , когда ngx.worker.id == 0.

Этот подход, конечно, работает только со статическими данными конфигурации.Я использую его в ряде проектов.

...