我需要在Lua脚本中使用Redis的HMGET
命令并从以下代码中提取特定的值。但是redis.call('HMGET', table_key, hkey1, hkey2, ...)
会返回一个扁平的数组{hkey1, val1, hkey2, val2, ...}
为了按键提取值,我编写了以下代码:
local function flat_map_get(flat_map, hash_key)
local i = 1
while flat_map[i] do
if flat_map[i] == hash_key then
return flat_map[i+1]
end
i = i+2
end
end
当然,随着使用量的增加,对此函数的多次调用会导致严重的性能下降。
从HMGET
返回的平面数组中读取值的有效方法是什么?
或者,将返回的值转换为适当的键值表的方法是什么?