开发过程中,由于项目先后由不同的人接手,规则定义不太一致,因此需要将以hash存储的内容转换为json格式,主要代码如下:
local info=redis.call('hgetall',KEYS[1])
local ret={}
for i=1,#info,2 do -- 下标从1开始,至info数组的长度,也就是#info终止,每次步进长度为2,因为hgetall得到的是key1,val1,key2,val2...的数组
ret[info[i]]=info[i+1]
end
return cjson.encode(ret)
在redis控制台中执行
eval "local info=redis.call('hgetall',KEYS[1]) local ret={} for i=1,#info,2 do ret[info[i]]=info[i+1] end return cjson.encode(ret)" 1 theKey