[Redis] 캐시 사용

Hyunho·2021년 7월 22일
0

Redis(Remote Dictionary Server)

  • 래디스를 캐시로 사용하는 다양한 캐싱 전략이 사용 된다.
  • 캐싱되는 데이터의 유형과 데이터에 대한 액세스 패턴에 따라 달라지기 때문에, 서비스 환경에 따라서 적절한 캐싱 전략을 사용해야한다.
  • 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 속도가 빠르다

Look Aside

  • lazy loading
  • Look Aside방식은 캐시서버를 옆에 두고 필요할 때만 데이터를 캐시에서 로드하는 캐싱 전략
  1. 캐시에 데이터가 있는지 확인.
  2. 캐시에 데이터가 있는경우(cache hit)해당 데이터를 사용.
  3. 캐시에 데이터가 없는 경우(cache miss) 데이터베이스에서 데이틀 가져온다.
  4. (3)에서 가져온 데이터를 캐시에 저장.

특징
-실제로 사용되는 데이터만 캐시한다.
-Redis의 장애가 어플리케이션에 치명적인 영향을 주지 않는다.
-캐시 미스가 발생한 경우 데이터 쿼리에 대한 시간이 오래 걸리거나, 최신 데이터에 동기화 문제가 발생할수 있다.

Write Through

  • write-through 전략은 데이터를 추가하거나 업데이트할 때 캐시에 동시에 업데이트하는 q방법
  • 아래와 같이 실제 DB를 볼 필요 없이cache만 읽는다.

장점

  • 캐시에 들어있는 데이터는 항상 최신의 데이터를 유지.
    • DB와 캐시의 값은 항상 동시에 쓰기 때문.

단점

  • 값을 쓸 때 마다 캐시와 데이터베이스에 모두 쓰기때문에 업데이트와 생성은 항상 2번 이루어진다.
    • 이는 쓰기 작업이 많은 시스템에서 딜레이를 유발할 수 있다.
  • 새로운 노드가 추가되거나 했을 경우 데이터를 찾지 못할 수 있다.
    • 새로운 노드에는 해당 데이터가 없을 것이기 때문.
  • 만약 읽을 때 캐시 미싱이 일어났다면 이를 다시 매꿔주기가 어렵다.
    • 대부분의 데이터는 거의 읽히지 않으므로 리소스 낭비로 이어질 수 있다.
profile
hyunho

0개의 댓글