1、定义共享内存100MB,nginx.conf配置文件http域增加如下指令代码:
http {
lua_shared_dict share_mem_cache 100m;
...
}
2、使用共享内存:
location /set {
content_by_lua_block {
local share_mem_cache = ngx.shared.share_mem_cache
share_mem_cache:set("name", "xiaoming")
ngx.say("STORED")
}
}
location /get {
content_by_lua_block {
local share_mem_cache = ngx.shared.share_mem_cache
ngx.say(share_mem_cache:get("name"))
}
}
location /capacity {
content_by_lua_block {
require "resty.core.shdict"
local share_mem_cache = ngx.shared.share_mem_cache
ngx.say(share_mem_cache:capacity())
}
}
3、另外,ngx_lua还提供很多相对安全的api接口操作共享内存。
- get_stale()
- safe_set()
- safe_add()