Cache Aside방식은 캐시 히트시에 캐시된 데이터를 불러오고 미스시에, 데이터베이스에서 캐시로 적재한다.
이를 통해서 조회시, 데이터베이스에 접근하지 않고, 더 빠르게 조회할 수 있다는 장점이 있고, 캐시에 문제가 발생해도 원본 db와 소통하면되니 서비스는 계속 동작할 수 있다는 장점이 있다.
하지만 만약 캐시와 db사이의 정보가 불일치 하다면, 정보를 받는 클라이언트 입장에서는 난해할 것이다. 이것을 Cache Inconsistency라고 한다.
원본데이터의 변경사항이 있는 경우, 캐시도 함께 변경하는 방법이다.
물론 최신의 데이터를 항상 유지할 수 있지만, 2번의 쓰기가 발생한다는 점에서 리소스의 낭비가 발생할 수도 있다.
원본데이터의 변경사항이 생기는 경우, 해당 캐시 데이터를 만료 시키는 방식이다.
이후에 데이터를 찾으면, 캐시 미스가 나므로, 원본데이터에서 캐시로 적재하여 최신화한다.
이를 통해서 사용할 정보만 캐싱해서 리소스의 낭비를 줄일 수 있다.
원본데이터의 변경사항이 있는 경우, 캐시의 정보만 업데이트 하고, 이후에 db에 정보를 저장하는 방식이다.
이를 통해서, 불필요한, 원본 db저장작업의 수행을 줄일 수 있어서, 성능을 개선할 수 있다.
원본데이터,캐시가 일시적으로 일치하지 않을 수 있기 때문에, 쓰기 작업이 빈번하게 일어나는 사이트에서는 최적화를 하기 위해서 사용하기 좋다.
출처: https://www.youtube.com/watch?v=tVZ15cCRAyE
https://www.maeil-mail.kr/question/121