为啥没有回滚机制?
- 在redis中事物执行失败有两个原因:语法错误,操作了不正确的键。这两个原因都可以在开发环境中得到修正,实际的生成环境不应该出现这种错误。
- 事物的回滚是很复杂的,会带来额外的复杂度;
- 引入回滚带来的收益没有想象中的那么大,所以redis的开发人员认为没有必要引入回滚机制。
redis事物的意义
- redis的事物更像是一个逻辑组合体,一个事物代表的一个业务逻辑组合。
- AOF数据恢复是是以事物为单位进行的:当面对事物中只有部分被持久化到硬盘的情况时,redis 会根据 aof 日志恢复,但是当 aof 日志有损坏的 MULTI 事务片段时,该片段会被删除,不存在执行一半的情况。,事物片段有问题整个事物片段都会被删除。
redis的原子性的不同表达
- redis中的原子性更多的是指:一个事物要么全部不执行,要么全部执行(并不管是否全部执行成功)