1. 程式人生 > 其它 >nginx之lua_shared_dict命令

nginx之lua_shared_dict命令

技術標籤: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方法從共享記憶體中取值