Redisの自己要約

1.キャッシュの浸透

ここに画像の説明を挿入

2.雪崩をキャッシュする

ここに画像の説明を挿入

3.キャッシュの内訳

ここに画像の説明を挿入

Redisは分散ロックを実装しています

ここに画像の説明を挿入
業務遂行時の異常やサーバーのダウンを防ぐため、ロックを解除してデッドロックを発生させないため、業務を遂行する前に有効期限を追加する必要があります。
ロックと有効期限を別々に実行して、アトミックであることを確認することはできません。
ここに画像の説明を挿入
ここで削除されたロックは自分のロックではない可能性があるため、ロックを追加するときは、uuidを入れて自分のロックであることを確認する必要があります。次に、それを取り出して自分のロックであると判断します。この2つの操作アトミックではないため、luaスクリプトを使用する必要があります。ロックを削除します。
ここに画像の説明を挿入
ここに画像の説明を挿入

Redissonを使用して分散ロックを実装する

彼は私たちの以前の論理を単純化し、それをより強力にすることができます。

  1. ロックを自動的に更新し、デフォルトで30秒を自動的に追加します
  2. ロック解除の問題について心配する必要はありません。
    ここに画像の説明を挿入
    通常、有効期限を手動で指定する必要があります。そうしないと、複雑な内部拡張戦略に時間がかかります。

読み取り/書き込みロック

ここに画像の説明を挿入

Redissonを使用する

1.依存関係を追加します

<dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.14.1</version>
</dependency>

2.構成

@Configuration
public class RedissonConfig {
    
    

    @Bean(destroyMethod = "shutdown")
    public RedissonClient redisson() {
    
    
        // 1. Create config object
        Config config = new Config();
        config.useSingleServer().setAddress("redis://39.96.41.98:6379");
        return Redisson.create(config);
    }
}

Redisデータの整合性

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_36905956/article/details/112154755