一、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数据也会回滚。