MySQL操作成功之后Redis操作失败的回滚问题
在项目中有个需求,需要保证MySQL数据库和Redis缓存数据的一致性。
一般增删改都是先操作MySQL数据库,成功之后再操作Redis,但这里有个问题,如果MySQL操作成功了,但Redis突然出现异常,操作失败,如何回滚MySQL操作。
使用注解@Transactional只会回滚MySQL异常的情况,Redis本身也不具备回滚功能,在MySQL操作成功的情况下,@Transactional注解会认为方法并没有异常,会继续执行而不回滚,这样就导致了MySQL和Redis不一致的情况。
为了避免这种情况,每次操作Redis之后,都会判断Redis有没有操作成功,操作失败则进行手动回滚,加一行代码:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 配合@Transactional注解即可解决问题。
特此记录。
MySQL操作成功之后Redis操作失败的回滚问题相关推荐
- Java-JDBC【之】事务介绍、事务特性、操作事务(事务提交、异常回滚)
Java-JDBC[之]事务介绍.事务特性.操作事务(事务提交.异常回滚) 1.数据库事务 1.1.介绍 1.2.事务特性(ACID) 1.3.隔离性(Isolation),带来的问题与处理 1.4. ...
- Redis事务,ACID性质,但是Redis不支持事务回滚
ACID性质 1.原子性 事物具有原子性指的是,数据库将事务中的多个操作当做一个整体来执行,服务器要么执行事务中的所有操作,要么就一个操作也不执行. 对于Redis的事务功能来说,事务队列中的命令要么 ...
- python redis 操作_Python 使用 Redis 操作
#set(name, value, ex=None, px=None, nx=False, xx=False)#r.set(name="k1",value="v1&quo ...
- git 回滚 add 操作_炫技!git 优雅回滚一次错误的合并操作!
点击蓝色小字关注! 关注一下你就不会有bug!合并操作 相对于常规的 commit,当使用 git merge 合并两个分支的时候,你会得到一个新的 merge commit. 当我们 git sho ...
- MySQL数据库的事务开启,提交和回滚
事务(transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位. 基于事务的原子性.一致性.隔离性和持续性特征,可以将相关的数据操作定义到一个事务 ...
- redis事务不具有回滚机制,那么它是如何进行事务控制的
redis事务 任何数据库都要有一套自己的事务控制机制,redis事务是一次可以执行多个命令,它的本质是一组命令的集合.一个事务中所有的命令都会被序列化,在事务执行的过程中会按照顺序执行队列中的命令. ...
- mysql重做日志_详解MySQL 重做日志(redo log)与回滚日志(undo logo)
前言: 前面文章讲述了 MySQL 系统中常见的几种日志,其实还有事务相关日志 redo log 和 undo log 没有介绍.相对于其他几种日志而言, redo log 和 undo log 是更 ...
- php redis事务回滚,【Redis】Redis事务详解,Redis事务不支持回滚吗?
1.redis事物参考:https://baijiahao.baidu.com/s?id=1613631210471699441&wfr=spider&for=pc (php操作red ...
- php封装redis类,php封装redis操作类
Redis系列-key相关主要操作函数_数学_自然科学_专业资料.这篇 blog 主要总结下,redis 中跟 key 相关的常用函数 1)keys 语法:keys pattern 解释:查找所有匹配 ...
最新文章
- 扒皮下京东首页楼层图标的动画效果实现方式
- 关于使用python的open函数时报No Such File or DIr的错误
- faster rcnn windows 下c++版本
- live555 源码分析:RTSPServer 组件结构
- 5分钟看懂,未来1年web前端新趋势,都在这了!!!
- Vue绑定style的使用方式(令组件复用)
- 使用DirectX播放音频数据流
- 智慧酒店系统开发给现代酒店运营注入创新活力
- 计算机技术与软件考试高级难么,计算机技术与软件专业技术资格考试高级哪个好考...
- 3、TM4之GPIO的输入输出
- TSC条码打印机 条形码ActiveXbarcode()方法参数详解
- 【无标题】人工智能的定义
- 【智能制造】智能制造与智能工厂的主要特征
- 13个Python小游戏,可以上班摸鱼玩了一天
- MySQL MGR 安装
- Redis——狂聊教程笔记
- HDLC协议及PPP协议
- 微信链接防拦截跳转系统 微信域名防屏蔽技术
- 微信有没有免费提现服务器,微信有没有免费提现的方法 教你三个微信提现的小技巧...
- 海康威视设备SDK调用,是否支持IP通道的思考