SpringBoot@Cacheableによるredisキャッシュメカニズム


SpringBoot注釈によるredisキャッシュメカニズムの実装
  • @Cacheableクエリ
  • @CachePut修正
  • @CacheEveict削除 を以下に示す.
  • @Cacheable   
    
    // An highlighted block
    //key:   dto     id                         
     @Cacheable(value = "getSchoolById", key = " #userDto.getDepartmentId() +'getFunctionTreeValue' ")
        public String redis(UserDto userDto) {
            Department byId = departmentMapper.getById(userDto.getDepartmentId());
            log.info("      ");
            return ResultInfo.success(byId.getDepartmentName());
        }
    

    実装効果:1回目のredisクエリーでデータベースクエリーが見つからない場合はログに印刷されます==データベースにアクセスします==2回目のアクセスでkey(2回とも同じ部門idの場合)を通じてredisに直接行ってバックグラウンドを印刷してもログを印刷しません
    @CachePut   
    
    //          key
    @Cacheable(value = "getSchoolById", key = " #userDto.getDepartmentId() +'getFunctionTreeValue' ")
        public ResultInfo updateRedis(UserDto userDto) {
            Department department = new Department();
            department.setId(aiUserImportPhotoDto.getDepartmentId());
            department.setDepartmentName(aiUserImportPhotoDto.getStr());
            departmentMapper.updateByIdNoNull(department);
            log.info("      ");
            return ResultInfo.success(department.getDepartmentName());
        }
    
    
      :             redis                 
    
    
    

    CacheEveict削除同理以降更新期限の設定があります