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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章