본문 바로가기
DevOps/Redis

[Redis] 캐시(Cache), 캐싱(Caching)이란?

by ryuneng 2025. 1. 25.
반응형

❓ 캐시(Cache)란?

  • 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소
    * Redis에서만 쓰이는 용어는 아니며, 전반적인 개발 분야에서 통용되는 개념이다.
  • 인터넷 사용 기록을 삭제할 때, '캐시된 이미지 및 파일'이라는 항목을 볼 수 있는데, 여기서 말하는 캐시가 이 캐시(Cache)다. 이는 임시로 이미지나 파일을 저장했다는 의미이다.

✔️ 캐싱(Caching)이란?

  • 캐시(Cache, 임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식
  • 실무에서 캐싱(Caching)을 사용할 때는 보통 이런 표현을 쓴다.
    : "이 API 응답 속도가 너무 느린데? 이 응답 데이터는 캐싱(Caching) 해두고 쓰는 게 어때?"
    → 이 말은, 'API 응답 결과를 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소에 저장해두고, 빠르게 조회할 수 있게 만드는 게 어때?' 라는 의미로 해석할 수 있다.


📌 데이터를 캐싱할 때 사용하는 주요 전략 2가지

1. Cache Aside 전략

데이터를 조회할 때 주로 사용하는 전략.
캐시(Cache)에서 데이터를 확인하고, 없다면 DB를 통해 조회해오는 방식으로,
Look Aside 또는 Lazy Loading 전략이라고도 부른다.

- 캐시에 데이터가 있을 경우 (=Cache Hit)

  1. 클라이언트가 레디스에 데이터를 요청한다.
  2. 레디스에서 클라이언트로 요청한 데이터를 응답한다.

- 캐시에 데이터가 없을 경우 (=Cache Miss)

  1. 클라이언트가 레디스에 데이터를 요청한다.
  2. 레디스에 데이터가 없기 때문에, 클라이언트가 데이터베이스에 데이터를 요청한다.
  3. 데이터베이스에서 클라이언트로 요청한 데이터를 응답한다.
  4. 클라이언트가 응답받은 데이터를 캐시(레디스)에 저장한다.

2. Write Around 전략

쓰기 작업(저장, 수정, 삭제)을 캐시에는 반영하지 않고, DB에만 반영하는 방식
Cache Aside 전략과 같이 자주 활용되는 전략이다.

매우 간단함!

  • 데이터를 저장할 때는 레디스에 저장하지 않고, 데이터베이스에만 저장한다.
    이후 데이터를 조회할 때, 레디스에 데이터가 없으면 데이터베이스로부터 데이터를 조회해와서 레디스에 저장하는 방식이다.

✅ 두 전략의 차이

  • Cache Aside는 읽기 성능을 개선하기 위한 전략이고,
    Write Around는 쓰기 성능을 고려해 캐시가 쓰기 작업에 부담을 받지 않도록 하는 전략이다.
  • Cache Aside는 주로 읽기 중심의 시나리오에 적합하고, Write Around는 쓰기 작업이 빈번하지 않고 읽기 작업이 많은 경우에 적합한 전략이다.



Reference

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Redis-캐시Cache-캐싱Caching이란