Spring RedisTemplate操作-事务操作
Posted aoeiuv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring RedisTemplate操作-事务操作相关的知识,希望对你有一定的参考价值。
@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操作-事务操作的主要内容,如果未能解决你的问题,请参考以下文章
Spring RedisTemplate操作-String操作