zoukankan      html  css  js  c++  java
  • Spring RedisTemplate操作-事务操作(9)

    @Autowired
        @Qualifier("redisTemplate")
        private RedisTemplate<String, String> stringredisTemplate;
    
        public void flushdb() {
            stringredisTemplate.execute(new RedisCallback<Object>() {
                public String doInRedis(RedisConnection connection) throws DataAccessException {
                    connection.flushDb();
                    return "ok";
                }
            });
        }
    
    //    @Transactional           //哪怕加了这个注解spring的配置文件里redistemplate配置也要开启事务支持
        public void mutli() {
            flushdb();
            ValueOperations<String, String> vo = stringredisTemplate.opsForValue();
            stringredisTemplate.setEnableTransactionSupport(true);
    
            stringredisTemplate.multi();
            vo.set("b", "1");
            vo.increment("b", 2);
            vo.get("b");
            stringredisTemplate.discard();
    
            stringredisTemplate.multi();
            vo.set("a", "1");
            vo.increment("a", 2);
            vo.get("a");
            out(stringredisTemplate.exec());
            // System.out.println("-------");
            
            stringredisTemplate.setEnableTransactionSupport(false);
            List<Object> rs = null;
            do{
                stringredisTemplate.watch("a");
                stringredisTemplate.multi();
                vo.increment("a", 2);
                vo.increment("a", 2);
                rs = stringredisTemplate.exec();
            }while(rs == null);//多重检测,直到执行成功。
            
            
            
        }
    
        public void out(String str) {
            System.out.println(str);
        }
    
        public void out(Collection list) {
            System.out.println(list);
        }
    
        public void out(long num) {
            System.out.println(num);
        }
    
        public void out(boolean num) {
            System.out.println(num);
        }
    
        public void out(DataType num) {
            System.out.println(num);
        }
  • 相关阅读:
    并查集
    结构体字节对齐
    Dijkstra算法(单源最短路径)
    图的遍历
    二叉树的非递归遍历
    浅谈C语言中的联合体
    二叉排序(查找)树
    KMP算法
    C语言文件操作解析(四)
    Trie树
  • 原文地址:https://www.cnblogs.com/aoeiuv/p/6761688.html
Copyright © 2011-2022 走看看