## spring data redis提供两种方式
1.编程式《同步执行》
~~~
redisTemplate.execute(new SessionCallback<Object>() {
@Override
public Object execute(RedisOperations operations) throws DataAccessException {
operations.unwatch();// 如果其他事线程中分销修改则回滚事务
operations.multi();// 开启事务
// 无需try回滚事务,出现异常底层会自动回滚
operations.opsForValue().set("execute", "事务");
int i = 1 / 0;
return operations.exec();// 提交事务
}
});
~~~
2.spring声明式事务
~~~
@Transactional
public Object index() {
template.setEnableTransactionSupport(true);// 设置支持spring声明式事务
redisTemplate.boundValueOps("ABC").set("ACB");
int i=1/0;
Object abc = redisTemplate.boundValueOps("ABC").get();
return abc;
}
~~~