Redis를 사용하며 생각할것들이 많아진다
TTL 설정은 어떻게할것인가
애초에 캐싱처리한다는것 자체가 DB와 원자성이 보장되지않잖아 그럼 어떻게 그 간극을 맞출것인가에 대한 의문
그래서 Redis의 캐싱처리를 할때에는 보통 실시간성이 없는 데이터
추천검색어, 상품 정보, 사용자프로필, 설정값등등...보통 많이 바뀌지않는데이터
그래도 바뀔염려가 있잖아
그떄는
@CacheEvict(value = "products", key = "'all'")
public Product createProduct(Product product) {
return productRepository.save(product);
}
@CacheEvict(value = "products", allEntries = true)
public void deleteProduct(Long id) {
productRepository.deleteById(id);
}
이렇게 저장되는 요소가 있을경우 캐시무효화를 실행해주게 중요해
만약 프로필이 변경됐다 하면 캐시무효화를 통해 다시 db에서 조회하도록 하면 원자성에 문제가 없겠지?
@CacheEvict = 캐시삭제
@CachePut = 캐시 강제 갱신
전체조회에선 캐시를 삭제하고 다시 넣는게 맞고
단일조회 (id = 조건) 이런값일때는 캐시 생신을 통해서 넣는 게 맞음
| Springboot에서의 Redis Cache 활용 방법 (0) | 2025.12.01 |
|---|---|
| Redis 캐시 저장방식, 제거방식 (0) | 2025.12.01 |
| Redis 활용 (0) | 2025.11.28 |
| Redis란 (0) | 2025.11.28 |