zoukankan      html  css  js  c++  java
  • 保证redis与mysql数据一致性方案

    因为redis是不支持回滚的,所以要在程序中进行控制,重置key的值,mysql是可以回滚的,但是为了数据的一致性,采用编程式事务进行控制,mysql回滚和redis重置都能统一处理,从而实现数据的一致性。

    如:

    @Override
    public Msg addEmployContractUser(String[] user_codes) {
        // TODO Auto-generated method stub
        Msg msg = transactionTemplate.execute(new TransactionCallback<Msg>() {
        @Override
        public Msg doInTransaction(TransactionStatus status) {
        Msg msgShow = new Msg();
       //redis的相关操作
        int ret = 0;
        employContractMapper.updateEmploySeq(user_codes);
        ret = employContractMapper.addEmployContractUser(user_codes);
     
        if(ret == 0){
            ret = employContractMapper.addEmployContractExists(user_codes);
        }
        if(ret>0){
            msgShow.setMsg("增加成功");
            return msgShow;
        }else {
         //redis 重置相关操作 status.setRollbackOnly(); //mysql回滚相关操作 msgShow.setMsg(
    "最新劳务用工合同信息已存在列表,无需增加"); return msgShow; }} }); return msg; }
    好好学习,天天向上
  • 相关阅读:
    隔离级别
    分析Hello2代码
    正则表达式
    Filter and servlet
    部署描述符
    Annotation
    LDAP and Implementation
    Restful levels and Hateoas
    servlet injection analysis
    隔离级别
  • 原文地址:https://www.cnblogs.com/lipengsheng-javaweb/p/14342484.html
Copyright © 2011-2022 走看看