什么是事务
几个操作要么全部成功,要么全部失败的特性,我们称之为事务
怎么理解redis的弱事务性
redis的事务存在两种情况:
- 如果在redis调用exec之前发生错误,如内存不够、命令语法错误等,会回滚事务
- 如果在redis调用exec之后发生错误,那么使用错误的命令不执行,但是队列中使用正确的命令依然执行
什么是弱事务性
从上面两种情况可以看出,redis只针对一部分情况回滚,而对于其他错误的情况不回滚的特性,称为弱事务性
为什么redis支持弱事务性而不完全支持事务?
redis官方的解释是,上述第二种情况属于编程错误。即使redis回滚了它,同样的错误依然会发生。所以这种情况更应该的是去DEBUG。另外,redis不支持这种情况的回滚有利于redis保持简单且快速