캐싱 전략

June Lee·2021년 5월 24일
0
  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개의 댓글