캐시(cache)는 데이터나 정보를 빠르게 검색하고 액세스할 수 있도록 임시로 저장하는 메커니즘 또는 저장소를 의미합니다. 캐시는 주로 데이터의 반복적인 액세스를 최적화하고 시스템 성능을 향상시키는 데 사용됩니다. 캐시는 다양한 종류의 데이터를 저장하며, 주로 빠른 응답 시간을 제공하고 시스템 부하를 줄이는 데 도움이 됩니다.
캐시 서버는 여러가지 읽기, 쓰기 패턴이 존재합니다. Redis를 캐시용으로 사용하게 된다면 어떠한 방식으로 사용할지 고려해서 사용해야 합니다.
Look aside cache
데이터를 요청하기 전에 캐시서버에 존재하는지 체크하는 패턴입니다.
클라이언트가 데이터를 요청합니다.
웹 서버는 데이터가 존재하는지 Cache 서버에 먼저 확인합니다.
Cache 서버에 데이터가 있으면 DB에 데이터를 조회하지 않고 Cache 서버에 있는 결과 값을 클라이언트에게 바로 반환 (Cache Hit)합니다.
Cache 서버에 데이터가 없으면 DB에 데이터를 조회하여 Cache 서버에 저장하고 결과 값을 클라이언트에게 반환 (Cache Miss)합니다.
<aside> ❗ 이 패턴의 문제점은 DB의 데이터가 변경된다면 캐시 서버와 데이터 불일치 문제가 발생할 수 있습니다.
</aside>