分布式事务知识小结
部分内容整理自:
面试必问:分布式事务六种解决方案 - 知乎 (zhihu.com) 10分钟说透Saga分布式事务 - 云+社区 - 腾讯云 (tencent.com)
1. 事务的ACID
- 原子性(Atomicity),可以理解为一个事务内的所有操作要么都执行,要么都不执行。
- 一致性(Consistency),可以理解为数据是满足完整性约束的,也就是不会存在中间状态的数据,比如你账上有400,我账上有100,你给我打200块,此时你账上的钱应该是200,我账上的钱应该是300,不会存在我账上钱加了,你账上钱没扣的中间状态。
- 隔离性(Isolation),指的是多个事务并发执行的时候不会互相干扰,即一个事务内部的数据对于其他事务来说是隔离的。
- 持久性(Durability),指的是一个事务完成了之后数据就被永远保存下来,之后的其他操作或故障都不会对事务的结果产生影响。
2. Redis的事务
- Redis 的事务不能保证所有操作要么都执行要么都不执行。
- Redis事务中的某个命令失败了,之后的命令还是会被处理,Redis 不会停止命令,意味着也不会回滚。
- Redis认为如果命令出错是语法使用错误,应该在开发的时候就被检测出来,不应在生产环境中出现。回滚并不能免于编程错误。
3. 2PC
-
是一种强一致性设计

