redis事务
Redis 事务的命令:
开启事务:multi
命令入队
执行事务:exec
撤销事务:discard
概述
在SpringBoot中,开启Redis的事务有两种方式,一种是手动开启,一种是使用@Transaction注解。
使用注解方式
redis配置类
//springBoot会自动配置redis,具体可参照RedisAutoConfiguration.java,但是默认的配置,没有开启事务,所以需要自定义
@Configuration
@EnableConfigurationProperties({RedisProperties.class})
public class RedisConfig {
/**
* 实例化 RedisTemplate 对象
*
* @return
*/
@Bean
public StringRedisTemplate customStringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
StringRedisTemplate template = new StringRedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
template.setEnableTransactionSupport(true);
return template;
}
}
在需要开启事务的方法上面加上注解
@Transactional(rollbackFor = Exception.class)
public void mutiTest(Map<String,String> datas) throws Exception {
redisTemplate.opsForValue().multiSet(datas);
throw new Exception("custom exception");
}
手动开启
//开启事务
redisTemplate.multi();
//do something
//关闭事务
redisTemplate.exec();