【发布时间】:2016-03-22 16:22:38
【问题描述】:
我需要从 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 返回的平面数组中读取值的有效方法是什么?
或者,将返回的值转换成合适的键值表?
【问题讨论】: