1. Redis와 Cache - Cache

hyeok ryu·2023년 12월 20일
0

Redis와 Cache

목록 보기
1/3

01. Cache

컴퓨팅에서 자주 사용되는 데이터나 값을 빠르게 접근하기 위해 임시로 저장하는 공간을 의미

02. Cache로의 Redis

Redis는 이미 cache로 많이 사용되고 있다.

  • 단순한 Key-Value 구조
  • In-Memory 방식
  • 빠른 성능
    • 평균 작업속도 1ms 이내

03. 캐싱 전략

Cache Hit와 Cache Miss

Cache HitCache Miss
캐시에 데이터가 존재 O캐시에 데이터 존재 X
바로 데이터 반환DB에 접근하여 데이터 반환

읽기 전략

1. Look-Aside (Lazy Loading)

  • Redis를 캐시로 사용할 때 가장 일반적인 방법
  • 캐시에 데이터가 없을때만, 캐시로 데이터가 올라가기 때문
1. 데이터를 찾기 위해 Redis에 접근.
2. Redis(Cache)에 데이터가 없다면, DB에 접근해서 데이터를 가져온다.
3. Redis(Cache)에 해당 데이터를 저장한다.

  • Redis가 죽더라도 바로 시스템의 장애로 이어지지 않음.
    다만, Redis와 연결된 Connection이 한 번에 DB로 쏟아질 수 있음.

2. Read Through

1. Redis(Cache)에 데이터를 요청한다.
2. Redis(Cache)에 데이터가 없다면 DB에 요청에서 값을 저장 후 반환

-Redis(Cache)가 죽는다면, 서버에 장애 발생.

만약, 캐시를 새롭게 투입했거나, DB에 새로운 데이터가 추가되었다면? 계속 위의 과정이 반복되며 Redis에 데이터가 추가 되어야 하는가?

-> Cache Warming
미리 DB에서 Cache에 데이터를 넣어줌.

쓰기 전략

1. Write Around

  • write 작업이 발생 했을때, DB에 바로 저장
  • Cache와 DB간의 데이터 정합성의 문제가 발생할 수 있음.

2. Write Through

  • write 작업이 발생 했을때, Redis(Cache)에 먼저 저장
  • Redis(Cache)에서 DB에 다시 데이터를 저장.
  • 항상 최신 데이터를 Cache가 가지고 있지만, 저장 단계가 많아짐.
  • 불필요한 데이터까지 Cache에 저장될 수 있음.

04. 주의사항

어떤 데이터에 사용해야 하는가?

  1. 빈번하게 사용되지만, 변경은 드문 데이터
  2. 유실되어도 문제가 없는 데이터

0개의 댓글