모든 캐시는 결정하는 데 사용하는 일정한 규칙을 갖고있다.
1. 캐시란?
자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소에 저장하고 있다가, 요청 시에 그것을 제공하는 기술이다. 많은 시간이나 연산이 필요한 작업의 결과를 저장해두는 것을 의미한다.
컴퓨팅에서 캐시는 일반적으로 일시적인(temporarily) 데이터를 저장하기 위한 목적으로 존재하는 고속의 데이터 저장 공간이다. 첫 작업 이후에 이 데이터에 대한 요청이 있을 경우, 데이터의 기본 저장 공간에 접근할 때보다 더 빠르게 요청을 처리할 수 있다. 캐싱을 사용하면 이전에 검색하거나 계산한 데이터를 효율적으로 재사용할 수 있다.
2. 캐시의 일반적인 작동원리
- 캐시의 데이터는 일반적으로 RAM(Random Access Memory) 과 같이 빠르게 액세스할 수 있는 하드웨어에 저장되고, 소프트웨어 구성 요소와 함께 사용될 수도 있다.
- 캐시는 기본 스토리지 계층(SSD, HDD)에 액세스하여 데이터를 가져오는 더 느린 작업의 요구를 줄이고, 데이터 검색의 성능을 높인다.
- 속도를 위해 용량을 절충하는 캐시는 일반적으로 데이터의 하위 집합을 일시적으로 저장한다. 완전하고 영구적인 데이터가 있는 데이터베이스와는 대조적이다.
3. 캐시의 장점은 무엇일까?
-
애플리케이션 성능 개선
메모리는 디스크보다 훨씬 속도가 빠르기 때문에 메모리 캐시에서 데이터를 읽으면 데이터 액세스가 훨씬 더 빨라져, 애플리케이션 전반적 성능의 개선이 가능하다.
-
데이터베이스 비용 절감
단일 캐시 인스턴스는 수십만
-
백엔드 부하 감소
-
예측 가능한 성능
-
데이터베이스 핫스팟 제거
-
읽기 처리량 증가
- 읽기 처리량: IOPS; Input/output Operations Per Second. HDD, SSD 등의 컴퓨터 저장 장치의 성능 측정 단위
4. 웹서비스에서 캐시가 적용되는 예제
- 클라이언트: HTTP 캐시 헤더, 브라우저
- 네트워크: DNS 서버, HTTP 캐시 헤더, CDN, 리버스 프록시
- 서버 및 데이터베이스: 키-값 데이터 스토어(e.g. Redis), 로컬 캐시(인-메모리, 디스크)