local arg = ngx.req.get_post_args()
-- arg.xxx
local pver = arg.pver
return_data ,err = red:eval([[
local core = redis.call('hget', 'test', 'CORE')
local cusbrowser = redis.call('hget','test', 'CUSBROWSER')
local defaultcore = redis.call('hget','test', 'DEFAULTCORE')
localreturn_data = {
switch = {
CORE = core,
CUSBROWSER = cusbrowser,
DEFAULTCORE = defaultcore
}
}
local redis_pver = redis.call('hget', 'test', 'pver');
if redis_pver > KEYS[1] then
table.insert(return_data, 'update.ver', redis.call('hget', 'test', 'ver'))
end
return return_data
]], 1, pver)
主要代码如上。因为大访问量背景下,先从redis获取值,来和传参对比之后可能会又一次的redis请求连接。
所以我就想把这些都放在eval里。减少tcp请求。
但是我在外部打印retrun_data这个返回值的时候发现是个空的table。 请问这是在哪里出问题了。
应该怎么写呢?
谢谢