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

Multithreading 我需要在Redis脚本中使用MULTI/EXEC吗,multithreading,lua,nosql,redis,atomic,Multithreading,Lua,Nosql,Redis,Atomic,我想用Lua脚本调用替换Redis中的MULTI/EXEC操作,根据Redis中的脚本文档: Redis使用相同的Lua解释器来运行所有命令。阿尔索 Redis保证脚本以原子方式执行:没有其他方式 脚本或Redis命令将在脚本运行时执行 执行。这种语义与MULTI/EXEC非常相似。 从所有其他客户的角度来看 脚本仍然不可见或已完成 据我所知,我可以在这种情况下删除MULTI/EXEC并简化我的过程,或者它比这个更复杂,我仍然需要使用它以防万一?(例如,对于集群环境)通常,使用Lua脚本,您可以

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

Redis使用相同的Lua解释器来运行所有命令。阿尔索 Redis保证脚本以原子方式执行:没有其他方式 脚本或Redis命令将在脚本运行时执行 执行。这种语义与MULTI/EXEC非常相似。 从所有其他客户的角度来看 脚本仍然不可见或已完成


据我所知,我可以在这种情况下删除MULTI/EXEC并简化我的过程,或者它比这个更复杂,我仍然需要使用它以防万一?(例如,对于集群环境)

通常,使用Lua脚本,您可以删除MULTI/EXEC,前提是MULTI/EXEC块仅用于强制隔离(隔离与在ACID中一样)


群集环境不会改变任何东西,因为MULTI/EXEC块只在实例级别工作。

是否仍有可能需要MULTI/EXEC的场景?例如,如果脚本在中间抛出一个错误怎么办?这只会导致部分结果反映在数据库中,对吗?