SpringCloud Spring CacheでRedisキャッシュを使用


SpringCloud Spring CacheでRedisキャッシュを使用
  • Spring Cache
  • アクティブ情報のキャッシュ
  • (1)pom.xmlにSpringDataRedis
  • を導入
  • (2)redis構成
  • を追加
  • (3)起動クラス追加@EnableCaching注記
  • (4)@Cacheable注記の使い方
  • (5)@CacheEveictの使い方
  • Spring Cache
    Spring Cacheの使用方法はSpringのトランザクション管理の構成と似ています.Spring Cacheの核心は,あるメソッドをキャッシュすることであり,本質的にはそのメソッドの戻り結果をキャッシュし,メソッドパラメータと結果をキー値ペアでキャッシュに格納し,そのメソッドを再度呼び出して対応するパラメータを使用すると,直接キャッシュから指定した結果を取り出して返す.
    一般的な注記:@Cacheable------この注記を使用すると、実行後に結果がキャッシュされます.@CacheEveict-----Spring Cacheの要素の一部を、実行前または実行後にこの注記を使用して除去します.
    アクティブ情報のキャッシュ
    アクティビティ詳細のキャッシュ実装手順:
    (1)pom.xmlにSpringDataRedisを導入
    私たちはtensquareでgatheringのpom.xmlにSpringDataRedisを導入する.
            
                org.springframework.data
                spring-data-redis
            
    
            
                redis.clients
                jedis
                2.9.0
            
    

    (2)redis構成の追加
    アプリケーションを変更します.yml、springノードの下にredis構成を追加します.
      redis:
        host: 192.168.2.10
        port: 6379
    

    (3)起動クラス追加@EnableCaching注記
    @EnableCachingのキャッシュサポートをGatheringApplicationに追加します.
    package com.tensquare.gathering;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cache.annotation.EnableCaching;
    import org.springframework.context.annotation.Bean;
    import util.IdWorker;
    @SpringBootApplication
    @EnableCaching
    public class GatheringApplication {
    
    	// com.tensquare.gathering.GatheringApplication
    	public static void main(String[] args) {
    		SpringApplication.run(GatheringApplication.class, args);
    	}
    
    	@Bean
    	public IdWorker idWorkker(){
    		return new IdWorker(1, 1);
    	}
    }
    

    説明:起動クラスに@EnableCaching注記を加え、キャッシュサポートを開始します.
    (4)@Cacheable注記の使い方
    GatheringServiceのfindByIdメソッドにキャッシュ注記を追加すると、このメソッドが初めて実行され、キャッシュに対応するvalueとkeyが見つからない場合、クエリー結果がキャッシュに格納されます.
    	/**
    	 *   ID    
    	 * @param id
    	 * @return
    	 * @Cacheable      value            ,key           key
    	 */
    	@Cacheable(value = "gathering",key = "#id")
    	public Gathering findById(String id) {
    		return gatheringDao.findById(id).get();
    	}
    

    (5)@CacheEveictの使い方
    データを削除する場合は、キャッシュを更新する必要があります.キャッシュを更新することは、キャッシュをクリアすると、ユーザーがクエリー・メソッドを再呼び出してキャッシュを抽出できないため、データベース内のレコードを再検索してキャッシュに格納します.
    	/**
    	 *   
    	 * @param gathering
    	 */
    	@CacheEvict(value = "gathering", key = "#gathering.id")
    	public void update(Gathering gathering) {
    		gatheringDao.save(gathering);
    	}
    
    	/**
    	 *   
    	 * @param id
    	 */
    	@CacheEvict(value = "gathering", key = "#gathering.id")
    	public void deleteById(String id) {
    		gatheringDao.deleteById(id);
    	}