我是Redis的新手。在我当前的项目中,我们广泛使用redis,一次过提取1000多个密钥,而这太频繁了。
这些调用以前是顺序调用,我们试图用管道替换。
我们为此使用Spring RedisTemplate。
现在的挑战是,我们从redisTemplate得到的响应是对象列表。我们希望它与输入键对应。
现在,我们依赖于输入键顺序,我认为这不是非常可靠的事情。
有什么方法可以使Redis本身获得MAP格式的信息,以便我们可以直接使用响应。
答案 0 :(得分:0)
没有这样的命令。相反,您可以使用Lua scripting实现目标。但是, Lua脚本还取决于输入键顺序。
local vals = redis.call('MGET', unpack(KEYS))
local res = {}
for i = 1, #KEYS do
res[i] = {KEYS[i], vals[i]}
end
return res
测试代码:
redis-cli mset a 1 b 2
OK
redis-cli --eval m.lua a b c ,
1) 1) "a"
2) "1"
2) 1) "b"
2) "2"
3) 1) "c"
2) (nil)