首页 > 代码库 > Spring RedisTemplate操作-事务操作(9)
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); }
Spring RedisTemplate操作-事务操作(9)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。