@Transaction是否会回滚redis?
@Transaction是否会回滚redis?
不会回滚redis
@Transactional @Override public void testTransaction() { stringRedisTemplate.opsForValue().set("niuma",12345 + ""); update().set("user_id",1).eq("id","94893703222525971").update(); System.out.println(1); int i = 3 / 0; }
开始时状态
没遇到bug时,事务正常提交,修改成功
事务提交前
redis在事务提交前就已经发生变化,不受事务管理
mysql未发生变化
事务提交后
redis在事务提交前就已改变
mysql在事务提交后才发生变化
恢复原始状态,抛出除0异常
遇到bug前
redis在事务提交前发生改变
mysql并未发生改变
遇到bug
redis没有回滚
mysql回滚,没有发生改变
总结
spring的事务只回滚了mysql,没有回滚redis,redis本身也不支持事务。