SpringBoot + redis:内部キャッシュとキャッシュアノテーションの使用に関する詳細な説明

時間の蓄積とともに、アプリケーションのユーザー数は増加し続け、データの規模もますます大きくなっています。データベースのクエリ操作がユーザーエクスペリエンスに影響を与えるボトルネックになることがよくあります。現時点では、多くの場合、キャッシュはこの問題を解決するための非常に優れた手段の1つです。Spring 3は、強力なアノテーションベースのキャッシュサポートの提供を開始しました。これにより、アノテーション構成メソッドを介して低侵入で元のSpringアプリケーションにキャッシュ機能を追加し、データアクセスのパフォーマンスを向上させることができます。

Spring Bootでのキャッシュのサポートのために、一連の自動構成が提供されているため、キャッシュを非常に便利に使用できます。以下では、簡単な例を使用して、既存のアプリケーションにキャッシュを追加する方法を示します。

1.ユーザーエンティティクラスを作成します

2.構成ファイルを追加します

3.redis構成ファイルを作成します

4.ビジネスの実現を作成します

 



#CacheConfigurationアノテーション詳細説明#@ CacheConfig:主に、このクラスで使用されるいくつかの一般的なキャッシュ構成を構成するために使用されます。ここで@CacheConfig(cacheNames = "users"):データアクセスオブジェクトで返されるコンテンツがusersという名前のキャッシュオブジェクトに格納されるように構成されています。このアノテーションを使用せずに、@ Cacheableを介してキャッシュセットを直接構成することもできます。名前定義します。
#@ Cacheable:findByName関数の戻り値がキャッシュに追加されるように構成されています。同時に、クエリを実行すると、最初にキャッシュからフェッチされ、存在しない場合はデータベースへのアクセスが開始されます。このアノテーションには、主に次のパラメーター
    1、value、およびcacheNamesがあります。2つの同等のパラメーター(cacheNamesは、valueのエイリアスとしてSpring 4に新しく追加されたものです)。キャッシュストレージのセットの名前を指定するために使用されます。Spring 4の新しい@CacheConfigにより、Spring 3で元々必要だったvalue属性も必須ではなくなりました。2。Key 
    :Mapコレクションに格納されているキャッシュオブジェクトのキー値。必須ではありません。 。デフォルトは関数によるものです。キー値として、自分で構成する場合は、次のようなSpEL式を使用する必要があります。@ Cacheable(key = "#p0"):関数の最初のパラメーターを次のように使用します。キャッシュのキー値。SpEL式の詳細コンテンツについては、公式ドキュメント
    3を参照してください。条件:キャッシュされたオブジェクトの条件、必須ではなく、SpEL式も必要です。式の条件を満たす場合はキャッシュされます。例:@Cacheable(key = "#p0"、condition = "#p0.length()<3")。これは、最初のパラメーターの長さが次の場合にのみキャッシュされることを意味します。は3未満です。この構成を行うと、上記のAAAユーザーはキャッシュされず、リーダーは自分で実験できます。
    4.以下の場合を除く:別のキャッシュ条件パラメーター、不要、およびSpEL式が必要です。判定タイミングが条件パラメータと異なります。条件は関数呼び出し後に判定されるため、結果で判定でき
    5. KeyGenerator:キージェネレーターを指定するために使用されます。必須ではありません。カスタムキージェネレーターを指定する必要がある場合は、org.springframework.cache.interceptor.KeyGeneratorインターフェースを実装し、このパラメーターを使用して指定する必要があります。このパラメーターとキーは相互に排他的であることに注意してください
    。6。CacheManager:使用するキャッシュマネージャーを指定するために使用されます。必須ではありません。使用する必要があるのが複数ある場合のみ
    7.cacheResolver:使用するキャッシュリゾルバーを指定するために使用されます。不要です。org.springframework.cache.interceptor.CacheResolverインターフェースを介して独自のキャッシュリゾルバーを実装する必要があり、このパラメーターを使用して
#@ CachePutを指定する必要があります。関数で構成され、パラメーター定義条件に従ってキャッシュできます。これは異なります。 @Cacheableから、実際には毎回関数を呼び出すため、主にデータの追加および変更操作に使用されます。そのパラメーターは@Cacheableに似ています。特定の関数については、上記の@Cacheableパラメーターの分析を参照してください。
#@ CacheEvict:関数で構成され、通常、キャッシュから対応するデータを削除するためにdeleteメソッドで使用されます。@Cacheableと同じパラメーターに加えて、次の2つのパラメーターもあり
    ます。1。allEntries:必須ではありません。デフォルトはfalseです。trueの場合、すべてのデータが削除されます
    。2。BeforeInvocation:不要、デフォルトはfalseで、メソッドが呼び出された後にデータが削除されます。trueの場合、メソッドを呼び出す前にデータが削除されます

github:プロジェクトアドレス https://github.com/juejuedog/SpringBootDemo.git

 

##リファレンス

-spring-data-redis公式
ドキュメント:https://docs.spring.io/spring-data/redis/docs/2.0.1.RELEASE/reference/html/-redisドキュメント:https:// redis。 io / documentation 
-Redisの中国語ドキュメント:http://www.redis.cn/commands.html

おすすめ

転載: blog.csdn.net/A___B___C/article/details/107348906