redis脚本将hgetall转为json

开发过程中,由于项目先后由不同的人接手,规则定义不太一致,因此需要将以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


你可能感兴趣的:(Redis)