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; }
    好好学习,天天向上
  • 相关阅读:
    Python列表推导式,字典推导式,元组推导式
    python装饰器@,内嵌函数,闭包
    7-route命令
    6-mv命令
    5-ln链接命令
    4-linux建立用户用户组以及新用户的赋权
    3-gzip压缩解压命令
    2-date命令
    1-cp命令
    UIViewContentMode的各种效果
  • 原文地址:https://www.cnblogs.com/lipengsheng-javaweb/p/14342484.html
Copyright © 2011-2022 走看看