当前位置:首页> 正文
redis的lua脚本多返回值
如何在redis的lua中返回不同类型的多个返回值?
lua脚本的函数支持多返回值,若redis调用lua脚本支持多返回值,会使一些开发场景简单。但遗憾的是经过试验,redis不支持这一特性。
测试脚本如下: test.lua -> local function test(val)
return 1, val
end
return test(KEYS[1])
使用redis执行脚本: redis-cli --eval test.lua 1 3 结果: (integer) 1
由上可见,redis只返回第一个值。 一种做法是,利用lua的table,将不同类型的值放入table,最后返回table。 测试脚本如下: test.lua -> local function test(val)
local ret1 = {1, 2}
local ret2 = "hello"
local ret3 = val
local ret = {}
ret[1] = ret1
ret[2] = ret2
ret[3] = ret3
return ret
end
return test(KEYS[1])
执行脚本: redis-cli --eval test.lua 1 3 结果: 1) 1) (integer) 1
2) (integer) 2
2) "hello"
3) "1"
可见,结果已经返回。 需要注意的是,使用jedis取结果时,需要将结果以List<Object>接收,之后对每个item转换为相应的类型再处理。
测试脚本如下: test.lua -> local function test(val)
return 1, val
end
return test(KEYS[1])
使用redis执行脚本: redis-cli --eval test.lua 1 3 结果: (integer) 1
由上可见,redis只返回第一个值。 一种做法是,利用lua的table,将不同类型的值放入table,最后返回table。 测试脚本如下: test.lua -> local function test(val)
local ret1 = {1, 2}
local ret2 = "hello"
local ret3 = val
local ret = {}
ret[1] = ret1
ret[2] = ret2
ret[3] = ret3
return ret
end
return test(KEYS[1])
执行脚本: redis-cli --eval test.lua 1 3 结果: 1) 1) (integer) 1
2) (integer) 2
2) "hello"
3) "1"
可见,结果已经返回。 需要注意的是,使用jedis取结果时,需要将结果以List<Object>接收,之后对每个item转换为相应的类型再处理。
展开全文阅读
相关内容
-
笔记本电脑不支持混音|笔记本电脑不支持混音怎
笔记本电脑不支持混音|笔记本电脑不支持混音怎么办,,1. 笔记本...
-
你支持800万用户Firefox吗如何能在火狐浏览器上
你支持800万用户Firefox吗如何能在火狐浏览器上中国的道路,,2...
-
正式发布的小米9支持5G信号吗对此你怎么看
正式发布的小米9支持5G信号吗对此你怎么看,小米,怎么看,正式发...
-
IE脚本错误如何做Web脚本错误解决技巧
IE脚本错误如何做Web脚本错误解决技巧,,这个问题是由于这样的...
-
支持高清的下一代:新版本的WinDVD出炉!{图}
支持高清的下一代:新版本的WinDVD出炉!{图},,今天,InterVideo Win...
-
wps填充公式|WPS里快速填充调用公式
wps填充公式|WPS里快速填充调用公式,填充,公式,wps,1.WPS里怎...
-
鸿蒙这么优秀,为什么大家不支持一下国产华为
鸿蒙这么优秀,为什么大家不支持一下国产华为,华为,鸿蒙,鸿蒙这...
-
电脑系统一般多大内存|电脑系统支持多大内存
电脑系统一般多大内存|电脑系统支持多大内存,,电脑系统支持多...
-
怎么解决Win10显示器输入不支持导致系统无法运
怎么解决Win10显示器输入不支持导致系统无法运行,不支持,显示...
-
联想垫a2207如何调用a2207平板评价
联想垫a2207如何调用a2207平板评价,,联想a2207垫在1600 3G双网...
-
支持DDR3!AM3接口790gx主板的评价
支持DDR3!AM3接口790gx主板的评价,,二月,在主板市场,各种各样的AM...
-
三星大器五g9298支持电信吗
三星大器五g9298支持电信吗,比我,我的,三星大器五g9298支持电...
-
Windows 11迎来首个原生支持ARM64的Visual Stud
Windows 11迎来首个原生支持ARM64的Visual Studio预览,WPS教...
-
电脑云爵x58主板显卡|支持x58主板的显卡
电脑云爵x58主板显卡|支持x58主板的显卡,,支持x58主板的显卡X5...
-
MSIb85g43游戏主板支持新Haswell
MSIb85g43游戏主板支持新Haswell,,新的Haswell处理器后,IT厂商...