初始化提交
This commit is contained in:
58
doc/nginx/lua/redisOps.lua
Normal file
58
doc/nginx/lua/redisOps.lua
Normal file
@@ -0,0 +1,58 @@
|
||||
-- 导入redis的Lua模块
|
||||
local redis = require('resty.redis')
|
||||
-- 初始化redis
|
||||
local red = redis:new()
|
||||
red:set_timeouts(1000, 1000, 1000)
|
||||
|
||||
-- 关闭redis连接的工具方法,其实是放入连接池
|
||||
local function close_redis(red)
|
||||
local pool_max_idle_time = 10000 -- 连接的空闲时间,单位是毫秒
|
||||
local pool_size = 100 --连接池大小
|
||||
local ok, err = red:set_keepalive(pool_max_idle_time, pool_size)
|
||||
if not ok then
|
||||
ngx.log(ngx.ERR, "放入redis连接池失败: ", err)
|
||||
end
|
||||
end
|
||||
|
||||
-- 查询redis的方法 ip和port是redis地址,key是查询的key
|
||||
local function read_redis(ip, port, key)
|
||||
-- 获取一个连接
|
||||
local ok, err = red:connect(ip, port)
|
||||
if not ok then
|
||||
ngx.log(ngx.ERR, "连接redis失败 : ", err)
|
||||
return nil
|
||||
end
|
||||
-- 查询redis
|
||||
local resp, err = red:get(key)
|
||||
-- 查询失败处理
|
||||
if not resp then
|
||||
ngx.log(ngx.ERR, "查询Redis失败: ", err, ", key = " , key)
|
||||
end
|
||||
--得到的数据为空处理
|
||||
if resp == ngx.null then
|
||||
resp = nil
|
||||
ngx.log(ngx.ERR, "查询Redis数据为空, key = ", key)
|
||||
end
|
||||
close_redis(red)
|
||||
return resp
|
||||
end
|
||||
|
||||
-- 封装函数,发送http请求,并解析响应
|
||||
local function read_http(path, params)
|
||||
local resp = ngx.location.capture(path,{
|
||||
method = ngx.HTTP_GET,
|
||||
args = params,
|
||||
})
|
||||
if not resp then
|
||||
-- 记录错误信息,返回404
|
||||
ngx.log(ngx.ERR, "http查询失败, path: ", path , ", args: ", args)
|
||||
ngx.exit(404)
|
||||
end
|
||||
return resp.body
|
||||
end
|
||||
-- 将方法导出
|
||||
local _M = {
|
||||
read_http = read_http,
|
||||
read_redis = read_redis
|
||||
}
|
||||
return _M
|
||||
Reference in New Issue
Block a user