Cache 이모저모

Cache

자주 이용하는 데이터나 값을 미리 복사해놓는 임시 장소! 일반 메모리/DB 등에는 저장을 많이 할 수 있지만 속도가 느리다. 캐시에 데이터를 불러와놓고 필요한 데이터를 찾을때 캐시에서 먼저 찾게 하면 성능을 향상 시킬 수 있다.

Cache Hit & Cache Miss

참조하고자 하는 메모리가 Cache에 있을경우 Cache Hit, 존재하지 않을때 Cache Miss라 한다. Cache Hit Ratio는 Cache Hit의 값을 Cache Hit과 Cache Miss의 합으로 나눈값으로 계산된다.

Cache 구조 - Look Aside Cache (일반적)

  1. 웹서버는 데이터가 존재하는지 캐시에 확인
  2. 캐시에 데이터가 있으면 캐시에서 가져온다
  3. 캐시에 데이터가 없으면 DB에서 가져오고, DB에서 가져온 데이터를 Cache에 저장한다.

Cache 구조 - Write Back

  1. 웹서버는 모든 데이터를 Cache에 저장
  2. 특정 시점/크기마다 Cache에 있는 데이터를 DB에 저장
  3. DB에 저장되면 Cache를 비움

Write Back의 경우에는 장애가 생기면 데이터가 사라진다는 이슈가 있지만, 재생가능한 데이터를 사용하고 극단적으로 heavy한 write를 쓸때 사용한다. DB에 접근을 줄일 수 있기에 퍼포먼스를 증진시킬 수 있다.

Write Through도 있는데, 이건 캐시가 되면서 동시에 DB에 작성하는거다. 로스는 줄이지만 성능 떨어짐.

Reference

전 회사 동료분이었던 성백님이 쓰신 좋은 글. 감사합니다.
우아한테크세미나