openresty 變量

NGX_LUA的三種變量範圍

  1. 進程間共享, nginx的所有work進程共享,使用lua_shared_dict定義,這樣高併發就出觸發鎖。

  2. 進程內共享,lua代碼中不加local關鍵字就是全局變量,這樣的變量在同一個進程的所有請求之間共享,因爲開啓了lua緩存,每個work的VM虛擬機都會緩存全局變量.

  3. 同一個請求,比如local聲明的或者ngx.ctx

  4. lua_shared_dict 有模塊lua-resty-lrucache可以實現在一個work中共享,由於nginx是單進程的,所以永遠不會觸發鎖
    就是兼顧效率而且沒有鎖的問題,缺點內存比進程間共享佔用比較大。

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