nginx之lua_shared_dict命令
阿新 • • 發佈:2020-12-12
技術標籤:luanginxlualua_shared_dict
lua_shared_dict設定一塊共享記憶體區域,可以被各個worker共享
寫在http模組中
比如下面這個,表示設定了一塊共享的記憶體區域,大小為10m.
lua_shared_dict sdata 10m;
設定了這裡面就可以存資料了,怎麼讀寫資料呢?有set和get方法,直接可以往這塊共享記憶體寫資料
測試一下
測試程式碼寫在外部lua檔案中,這裡引入一下
server {
listen 80;
server_name localhost;
location / {
stub_status on;
default_type text/html;
content_by_lua_file /usr/local/openresty/lualib/luatest/tmp.lua;
}
}
外部lua程式碼如下
-- 獲取共享記憶體的dict物件
local x=ngx.shared.sdata
-- 在共享記憶體裡放個kv對
x:set("a","apple")
ngx.say("STOREDS")
-- 獲取資料
ngx.say(x:get("a"))
開啟網頁重新整理測試一下,可以看出已經獲取到了儲存在共享記憶體的值.
總結
- ngx.shared 加上共享記憶體的名字可以獲取這個共享的dict物件
- 可以用set方法往共享記憶體中存資料,同時可以利用get方法從共享記憶體中取值