搜索
您的当前位置:首页正文

springboot使用redis的事务

来源:榕意旅游网

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();

因篇幅问题不能全部显示,请点此查看更多更全内容

Top