nginx-lua worker 之間數據共享

問題

最近工作中做性能優化用到Lua (openresty), 由於調研不深入,導致上線時濫用了全局變量導致數據共享,數據錯亂,所以有必要整理一下這個知識點。

nginx worker之間數據共享

如果要在同一個 nginx worker 不同請求之間共享數據,需要將共享數據或者代碼放到一個lua 模塊中,然後使用內置函數require 導入該模塊,就可以讀取或者操作共享數據了,除了模塊級變量外,lua 全局變量在每個請求之間不會共享,這是最初設計決定的。

特別注意: 模塊級全局變量在同一個nginx worker 不同請求之間時共享的,如果此處操作不當,在併發情況下,可能會導致我之前遇到的問題數據互相干擾。

例子

再加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章