Spring Boot | Spring Boot 프로젝트는 로컬 캐싱의 왕(Caffeine)을 통합합니다.

함께 만들고 함께 성장하기 위해 함께 노력하십시오! "너겟 데일리 뉴플랜 · 8월 업데이트 챌린지" 참여 18일차 입니다 . 이벤트 상세보기 클릭

카페인 소개

공식 웹사이트 주소: github.com/ben-manes/c…

Caffeine은 고성능 로컬 캐싱 라이브러리입니다.

샘플 프로그램 환경 구성

이 샘플 프로그램의 종속 환경 구성은 다음과 같습니다.

  • JDK 버전: 1.8
  • 카페인 버전: 2.9.3
  • SpringBoot 버전: 2.7.0

SpringBoot 프로젝트에서 Caffeine을 통합하는 단계

SpringBoot는 다음 두 가지 방법으로 Caffeine을 통합합니다.

  • 방법 1: Caffeine 종속성을 직접 도입한 다음 Caffeine 방법을 사용하여 캐싱을 구현합니다.
  • 방법 2: Caffeine 및 Spring Cache 종속성을 도입하고 SpringCache 주석 방법을 사용하여 캐싱을 구현합니다.

여기서는 방법 1 만 소개 합니다 .

1. pom.xml파일 에 caffeine관련 종속성 을 도입합니다.

<dependency>
    <groupId>com.github.ben-manes.caffeine</groupId>
    <artifactId>caffeine</artifactId>
</dependency>
复制代码

2. 캐시 구성 클래스 작성 - CacheConfig.java

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

@Configuration
public class CacheConfig {
    @Bean
    public Cache<String, Object> caffeineCache() {
        return Caffeine.newBuilder()
                // 设置最后一次写入或访问后两个小时后过期
                .expireAfterWrite(7200, TimeUnit.SECONDS)
                // 初始的缓存空间大小
                .initialCapacity(100)
                // 缓存的最大条数
                .maximumSize(1000)
                .build();
    }
}
复制代码

캐시 구성 클래스에서 다음 설정을 수행했습니다.

  • 마지막 쓰기 또는 액세스 후 2시간 후에 만료되도록 설정
  • 초기 캐시 공간 크기 설정
  • 최대 캐시 수 설정

카페인의 몇 가지 일반적인 구성:

구성 값 유형 설명
만료 후액세스 지속 마지막 쓰기 또는 액세스 후 만료되는 기간을 지정합니다.
만료 후 쓰기 지속 마지막 쓰기 캐시가 만료된 후 시간을 지정합니다.
초기용량 정수 초기 캐시 공간 크기
최대 크기 최대 캐시 수
최대 무게 캐시의 최대 무게
새로고침 후쓰기 지속 캐시가 생성되거나 캐시가 마지막으로 업데이트된 후 지정된 시간 간격 후에 캐시가 새로 고쳐집니다.

알아채다:

  • maximumSizemaximumWeight동시에 사용할 수 없습니다.
  • expireAfterWriteexpireAfterAccess둘 다 존재 expireAfterWrite합니다.

3. 데이터 접근

// 1. 注入
@Resource
private Cache<String, Object> caffeineCache;

// 2. 存储数据
caffeineCache.put("access_token", token);

// 3. 读取数据
String token = (String) caffeineCache.asMap().get("access_token");
复制代码

데이터를 읽을 때 먼저 카페인 캐시, 즉 2단계에서 캐시 구성 클래스에서 구성한 캐시를 주입해야 합니다. 데이터를 저장하기 위해 캐시 클래스의 메소드를 호출하고 캐시 클래스의 put(...)메소드는 다음 과 같습니다. 데이터를 읽기 위해 호출됩니다 get(...).


추천

출처juejin.im/post/7133469059898671112