Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Skipalong's tistory

240206 TIL - Cache 본문

TIL

240206 TIL - Cache

Skipalong 2024. 2. 7. 02:23

오늘은 Cache 를 코드에 적용한 것을 정리해보겠다. 

우선 redis 설정은 email인증때 해두었으므로 생략하고 RedisCacheConfiguration 클래스의 defaultCacheConfig()를 이용해서 기본 세팅을 해주었다. 그리고 serializeValueWith메서드를 통해 value값의 직렬화설정을 해준다 key값은 String 으로 직렬화설정이 되어있고 value값은 Json을 바이트형태(?)로 직렬화해주는 설정이다. 그리고 <String, RedisCacheConfiguration> 형태의 Map 으로 캐싱대상에 따라 다른 설정을 해줄 수 있는데 인기 코스와 별점높은여행정보에 cacheName을 붙여주고 일단 30분의 만료시간을 주었다. 

이렇게 설정을 해주고 SpringBootApplication에 @EnableCaching 어노테이션을 달아준 뒤 원하는 메서드에 캐셔블 설정을 해주면 된다. 

 

 

나는 이렇게@Cacheable어노테이션 안에 cacheNames와 key, condition 설정을 해주었는데 cacheNames 는 캐시 이름을 설정해주는것이고 key 는 이름이 같을 때 값을 구분해주기 위한 정보이다. 이렇게 설정을 해주면 cacheNames::key 형태로 redis에 저장된다. 

그리고 condition은 원하는 조건을 만족할 때만 캐싱을 할 수 있게 해주는데 내가 적용한 메서드는 동적쿼리를 사용하는 메서드라서 condition설정을 유용하게 썼다. 그리고 key와 condition에 "#aaa" 형태로 있는데 이렇게 값을 주면 parameter에 들어있는 정보를 사용할 수 있다.

 

위의 사진은 차례대로 redis 저장소에 담긴 캐시의 key목록이고 아래 두 사진은 36ms 정도 걸리던 작업이 4ms 로 90%가까이 시간이 단축된 모습을 확인하였다. 

'TIL' 카테고리의 다른 글

240208 TIL - 최종프로젝트 마무리  (1) 2024.02.09
240207 TIL - Cache  (0) 2024.02.08
240205 TIL - Cache  (1) 2024.02.06
240202 TIL- JWT, AccessToken, RefreshToken  (0) 2024.02.03
240201 TIL - JMeter, nGrinder  (0) 2024.02.02