在 Redis 中通过 Lua 设置多个键

我正在寻找 Redis 中的 INSERT 脚本对应项,以便一次设置多个键。

SET foo bar
SET sun moon
SET fire water
...

上述内容的 Lua 脚本会是什么样子,因为我在线上找不到太多的帮助。

点赞
用户6754140
用户6754140

对于 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 命令可以本地设置多个键。

https://redis.io/commands/mset

2019-10-28 15:35:08