在Redis脚本中我需要使用MULTI/EXEC吗?

我想用 Lua 脚本调用来替换 Redis 中的 MULTI/EXEC 操作,并根据 Redis 中的脚本文档:

Redis 使用相同的 Lua 解释器运行所有命令。此外,Redis 保证以原子方式执行脚本:在执行脚本时,不会执行任何其他脚本或 Redis 命令。这种语义非常类似于 MULTI/EXEC。从所有其他客户端的角度来看,脚本的效果要么仍然不可见,要么已经完成。

据我理解,在这种情况下我可以放弃 MULTI/EXEC 并简化我的过程,或者这比这更复杂,我仍然需要使用它以防万一?(例如,在群集环境中使用)

点赞
用户1114486
用户1114486

通常情况下,使用 Lua 脚本时,您可以放弃 MULTI/EXEC,前提是 MULTI/EXEC 块仅用于实施隔离(即 ACID 中的隔离)。

集群环境不会改变任何事情,因为 MULTI/EXEC 块只在实例级别上起作用。

2013-12-05 08:54:35