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; }
    好好学习,天天向上
  • 相关阅读:
    LeetCode OJ Remove Duplicates from Sorted Array II
    LeetCode OJ 75. Sort Colors
    LeetCode OJ 74. Search a 2D Matrix
    LeetCode OJ 73. Set Matrix Zeroes
    Taglist
    NERDTree
    Beyond Compare 4
    Beyond compare vs kdiff3
    切換 java compiler 版本
    PE+ 1.0 ( Pump Express Plus 1.0 )
  • 原文地址:https://www.cnblogs.com/lipengsheng-javaweb/p/14342484.html
Copyright © 2011-2022 走看看