设置redis连接池分为如下几步:
1. 首先在nginx.conf文件中的http节点下添加如下upstream节点
upstream redis_pool {
server 127.0.0.1:6660; #redis-server的ip和端口
keepalive 1024;
}
2. 其次在nginx.conf文件的server节点下添加location节点
location /get_redis {
set_unescape_uri $query $arg_query;
redis2_raw_query $query;
redis2_pass redis_pool;
}
3. 最后编写一个redisManager的lua脚本
RedisManager = {}
RedisManager.runCommand = {}
local metatable = {
__call = function(table , ...)
command = nil
args = ''
for key, value in ipairs({...}) do
if not command then
command = value
else
args = args .. " " .. value;
end
end
command = command .. " " .. args .. '\r\n'
-- return command
local res = ngx.location.capture("/get_redis",{
args = { query = command}
})
return res.body
end
}
setmetatable(RedisManager.runCommand, metatable);
return RedisManager
4. 这样,在lua代码中就可以通过require("RedisManager") 使用了
5. 我的测试代码
local RedisManager = require("RedisManager")
RedisManager.runCommand("set", "dog", "hhhh")
ngx.say(RedisManager.runCommand("get", "dog"))
6. 压力测试结果: