SpringBootスタディノート_MysqlおよびRedisトランザクション

1つは、MysqlとRedisのエラー報告メカニズムです。

mysqlに既存のデータを追加する場合:

dataRepository.save(data);

エラーが報告されました:キー「xxx」のエントリ「データ」が重複しています。

redisで既存のデータを追加する場合:

redisService.setValue(data);

コンテンツは追加されず、エラーは報告されません。

2つ目は、バインディングトランザクションを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