2013-10-01 5 views
1

Я использую HttpLuaModule для выполнения некоторых действий против запросов. То, как я это сделать, я выставиться ngx.shared.dict так:Безопасен ли ngx.shared.DICT?

lua_shared_dict foo 10m; 

А потом я использую rewrite_by_lua для получения и установки значений и из этого словаря.

Мой вопрос:

При высокой нагрузке, когда сотни запросов должны быть обработаны каждый второй. Можно ли использовать этот словарь? Например, в моем скрипте этот словарь обновляется каждые 60 секунд от Redis. Если я устанавливаю время истечения для каждой отдельной пары: значение в словаре. И вдруг все соединения должны получить доступ к этому ключу, но его там нет, тогда все они будут выполнять вызов Redis для извлечения данных и обновления словаря. это правда? Или может быть, он был разработан для некоторых других случаев использования?

ответ

0

ngx.shared.DICT является потокобезопасным.

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

https://github.com/openresty/lua-nginx-module#ngxshareddict

Смежные вопросы