验证lua_shared_dict能存储多少key
nginx.conf配置
worker_processes 1;
error_log logs/error.log info;
events {
worker_connections 256;
}
http {
lua_shared_dict cats 20m;
server {
listen 8080;
location = /test {
content_by_lua_block {
local cats = ngx.shared.cats
local i = 0
while true do
local ok, err = cats:safe_set('test_'..i, i)
if not ok then
if err == "no memory" then
ngx.say('no memory')
break
end
ngx.say("failed to set: ", err)
return
end
i = i + 1
end
ngx.say("inserted ", i, " keys.")
# ngx.say(cats:get_keys(0))
}
}
}
}
测试
curl http://127.0.0.1:8080/test
# no memory
# inserted XXX keys.
当然,实际的存储量和key、value的大小有关。本文只提供一种基础的预估计算方式。