SpringBoot] @Cacheable 없이 직접 캐시 생성하기

JUNHYUK CHANG·2024년 3월 12일
0

TIL

목록 보기
29/33
post-thumbnail

@Cacheable 어노테이션을 사용하면 아주 간단하게 캐싱을 구현할 수 있었다.

스프링부트가 자동으로 메서드를 호출할 때의 인자를 확인하여 지정한 키로 캐시를 확인해주기 때문이다.

하지만 이 방법은 메서드 자체에 자동으로 설정되기 때문에 내가 원하는 시점, 원하는 상황에서 원하는 방법으로 캐시를 확인하거나 처리할 수 없어 답답할 수 있다.

이럴 땐 직접 캐시를 관리하는 방법을 알아야 한다.

캐시 등록

  1. 캐시의 등록은 우선 캐시매니저 ( RedisConfig 에서 캐시 설정과 직렬/역직렬 설정과 캐시 Ttl등을 설정 ) 를 의존성 주입으로 받아와 "tickets" 라는 이름의 캐시를 가져온다.
  2. 직접 키를 생성한다. 생성된 키는 "캐시명::키" 의 형태로 생성된다.
    • 이때 Redis-cli 에서 GET 으로 조회하고 싶다면 "캐시명::키" 를 입력해야 하지만, 위의 cache 에서 get() 으로 조회하고자 할 때는 뒤의 "키"부분만 입력해야 확인할 수 있다.
  3. cache 가 null 이 아니라면 put(키, 값) 을 통해 캐시에 데이터를 등록할 수 있다.

캐시 조회 & 삭제


캐시의 조회 방법도 아주 간단하다.
1. 원하는 캐시명을 입력하여 가져온 뒤
2. 키를 생성하고
3. get(키) 를 통해 데이터를 가져올 수 있다.
4. evict(키) 를 통해 캐시를 삭제할 수 있다.

캐시 관리

이때 cacheManager 에 "캐시명"에 해당하는 cacheConfig 를 별도로 생성하여 각각 설정을 해줄 수 있다.

0개의 댓글