SpringBoot学习笔记之_Mysql和Redis事务

一、Mysql和Redis报错机制

当在mysql中添加已经存在的数据时:

dataRepository.save(data);

即报错:Duplicate entry 'data' for key 'xxx'。

当在redis中添加已经存在的数据时:

redisService.setValue(data);

不会添加内容,也不会报错。

二、给mysql和redis数据操作添加绑定事务

首先在RedisService中开启事务功能:

private void initStringRedisTemplate(){
    stringRedisTemplate.setKeySerializer(keySerializer);
    stringRedisTemplate.setHashKeySerializer(keySerializer);
    stringRedisTemplate.setEnableTransactionSupport(true); // 开启事务功能
}

然后在mysql和redis数据操作上添加注解:

@Transactional(rollbackFor = Exception.class)

此时若在mysql数据库操作过程中报错,则在此之前操作的redis数据也会回滚。

猜你喜欢

转载自blog.csdn.net/wishxiaozhu/article/details/102679773