Redis的lua脚本原子性。

我最近学习了很多关于 Lua 脚本和 Redis 的内容,但是下面这个问题我仍然不确定(我使用一个简单的例子来解释我的问题的含义):

  • 我必须执行 3 个 set 命令,如果其中任何一个失败,我希望 redis 键的状态被恢复到 lua 脚本执行之前的状态(所以如果第一个 set 成功,第二个失败,脚本失败,我希望第一个 set 更改的键的值被恢复到旧值)。

我的应用程序使用连接池向 redis 发送命令(每个连接都被认为是 redis 的不同客户端),每个命令使用池的不同连接。在这种情况下,使用 MULTI/EXEC 不是很容易,所以我考虑了一个 Lua 脚本(并且只发送一个 Eval 命令)。但是,在修改应用程序源代码之前,我需要确保任何故障都能恢复状态......

非常感谢您的回复...

点赞