redis事务和使用lua脚本执行的区别
在 Redis 中,**事务(Transaction)** 和 **Lua 脚本执行** 都可以用于批量操作,但两者在实现机制、原子性保证、灵活性等方面有显著区别。 --- ### **1. 事务(Transaction)** #### **特点**: - **基于命令队列**: 通过 `MULTI` 开启事务,后续命令会进入队列(不立即执行),最后用 `EXEC` 提交执行。 - **弱原子性**: 事务中的命令按顺序执行,但 **不保证原子性**。若某条命令失败(如操作了错误的数据类型),**后续命令仍会继续执行**,且 **不支持回滚**。 - **无隔离性**: 事务执行期间,其他客户端可以插入操作(通过 `WATCH` 实现乐观锁来部分规避问题)。 - **简单逻辑**: 只能顺序...阅读全文