【发布时间】:2019-10-29 01:22:12
【问题描述】:
我正在 Redis 中寻找一个 INSERT 脚本对应项,我想在其中一次设置多个键。
SET foo bar
SET sun moon
SET fire water
...
上面的 Lua 脚本看起来如何,因为我在网上找不到太多帮助。
【问题讨论】:
我正在 Redis 中寻找一个 INSERT 脚本对应项,我想在其中一次设置多个键。
SET foo bar
SET sun moon
SET fire water
...
上面的 Lua 脚本看起来如何,因为我在网上找不到太多帮助。
【问题讨论】:
对于 Lua 脚本,我会这样做:
for i=1, #KEYS do
redis.call("SET", KEYS[i], ARGV[i])
end
在执行中,如下所示:
EVAL 'for i=1, #KEYS do redis.call("SET", KEYS[i], ARGV[i]) end' 2 key1 key2 val1 val2
请注意,#KEYS 不是动态计算的,而是显式传递的 numkeys 参数。
可以根据需要添加额外的验证——例如,断言相同数量的键和参数——但我强烈建议在客户端进行大部分的健全性检查以提高性能。
如果不使用 Lua,Redis 自带命令 MSET 可以同时设置多个键。
【讨论】:
MSET。
MSET 系列命令。我的一般问题是,为 redis 编写脚本的首选方式是什么,尤其是当它需要进行版本控制并跨多个 redis 服务器使用时?它是否使用任何选择的客户端(Node、Python)?