Redis 事务的命令:
开启事务:multi
命令入队
执行事务:exec
撤销事务:discard
在SpringBoot中,开启Redis的事务有两种方式,一种是手动开启,一种是使用@Transaction注解。
//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();
因篇幅问题不能全部显示,请点此查看更多更全内容