|
|
@ -12,14 +12,18 @@ local function getType(k) |
|
|
|
-- get type of input key |
|
|
|
local t = redis.call("TYPE", k) |
|
|
|
-- concat string for logging |
|
|
|
-- logit("Key: " .. k .. "; Type: " .. t["ok"] ) |
|
|
|
logit("Key: " .. k .. "; Type: " .. t["ok"] ) |
|
|
|
return t["ok"] |
|
|
|
end -- function getType |
|
|
|
|
|
|
|
-- simple key for json string |
|
|
|
local function key2json(key, value) |
|
|
|
|
|
|
|
return ' "' .. key .. '": "' .. value .. '" ' |
|
|
|
if tonumber(value) ~= nil then |
|
|
|
return ' "' .. key .. '": ' .. tonumber(value) |
|
|
|
else |
|
|
|
return ' "' .. key .. '": "' .. value .. '" ' |
|
|
|
end |
|
|
|
|
|
|
|
end -- function key2json |
|
|
|
|
|
|
@ -30,7 +34,7 @@ end -- function key2json |
|
|
|
local k = redis.call("KEYS", "*") |
|
|
|
|
|
|
|
-- jsonstring |
|
|
|
local js = '{ ' |
|
|
|
local js = '{' |
|
|
|
local var = {} |
|
|
|
|
|
|
|
-- iterate over all keys |
|
|
@ -44,15 +48,36 @@ for n = 1,(#k) do |
|
|
|
-- serialize it into jsonstring |
|
|
|
js = js .. key2json(k[n], var) |
|
|
|
|
|
|
|
-- separate key value strings |
|
|
|
if n < (#k) then |
|
|
|
js = js .. ', ' |
|
|
|
else |
|
|
|
js = js .. ' }' |
|
|
|
end |
|
|
|
|
|
|
|
end -- if t == "string" |
|
|
|
elseif t == "list" then |
|
|
|
-- get values of a list |
|
|
|
var = redis.call("LRANGE", k[n], "0", "-1") |
|
|
|
js = js .. ' "' .. k[n] .. '":[' |
|
|
|
for l = 1,(#var) do |
|
|
|
|
|
|
|
if tonumber(var[l]) ~= nil then |
|
|
|
js = js .. ' ' .. tonumber(var[l]) |
|
|
|
else |
|
|
|
js = js .. ' "' .. var[l] .. '"' |
|
|
|
end -- if |
|
|
|
|
|
|
|
-- separate list values |
|
|
|
if l < (#var) then |
|
|
|
js = js .. ',' |
|
|
|
else |
|
|
|
js = js .. '] ' |
|
|
|
end -- if |
|
|
|
|
|
|
|
end -- for l |
|
|
|
|
|
|
|
end -- if |
|
|
|
|
|
|
|
-- separate key values |
|
|
|
if n < (#k) then |
|
|
|
js = js .. ',' |
|
|
|
else |
|
|
|
js = js .. ' }' |
|
|
|
end |
|
|
|
|
|
|
|
end -- for |
|
|
|
|
|
|
|