캐싱 전략

June Lee·2021년 5월 24일
  1. Look Aside

    DB에 들리기 전에 먼저 캐시에서 데이터가 있는지 확인하고, 있으면 캐시에서, 없으면 DB에서 가지고 오는데, 이때 가지고 오는 데이터를 캐시에 저장해준다.
    이렇게 하면 캐시에 없는 데이터인 경우 시간이 더 오래 걸리고, 캐시에서 읽어온 데이터가 최신 데이터가 아닐 수 있어서 동기화를 위한 추가적 전략이 필요하다.
  1. Write Back

    쓰기가 매우 빈번하게 일어나는 경우, 매번 DB(디스크)에 있는 데이터를 수정하는 것은 부담이 되기 때문에, 우선 캐시에 해당 내용을 저장해두고, 일정 주기마다 한 번씩 디스크에 내용을 갖다쓴다.
    그러나 메모리에만 데이터가 저장되어있는 동안에는 장애가 발생할 경우 해당 데이터가 다 날라갈 가능성이 있기 때문에 주의해서 사용해야한다.
    보통 로그를 DB에 저장하는 경우에 유용하게 많이 쓰인다. (다시 재생할 수 있는 데이터, 극단적으로 많은 Write의 경우)

  2. Write Through

    읽을 때는 캐시에서 바로 읽어오고, 쓸 때에는 캐시를 거쳐서 캐시에 먼저 저장한 후 DB에 저장해준다.
    DB와 캐시가 항상 동기화되지만, 쓰기 작업에 딜레이가 더 생긴다는 단점이 있다.


참고 자료 및 사진 출처
https://wnsgml972.github.io/database/2020/12/13/Caching/

https://www.youtube.com/watch?v=mPB2CZiAkKM

profile
📝 dev wiki

0개의 댓글