캐시
캐시란 자주 사용하는 데이터를 미리 보관해둔 임시장소를 의미한다.
캐시는 비교적 저장 공간이 적고 전체적인 비용이 비싸다.
대신 빠른 IO를 통해 성능적 이점을 가져올 수 있다.
일반적으로
- 도중에 변경될 일이 없는 데이터베이스 조회 값
- 자주 호출하는 데이터
와 같은 특징들을 가지고 있는 데이터에 대해 캐시를 사용하면 좋다.
스프링부트에서의 캐시
스프링부트에서 사용할 수 있는 캐시는 대부분 JSR-107을 따른다.
JSR-107을 따르는 캐시를 사용하면 어떤 구현체 캐시를 사용하는지에 관계없이 추상화를 지원한다.
로컬 캐시와 글로벌 캐시
로컬 캐시
로컬(해당 서버)에서만 사용하는 캐시
외부 서버와 트랜잭션 비용이 들지 않기 때문에 속도가 빠르다.
로컬에서만 사용하기 때문에 분산 서버의 구조에서 캐시를 공유하기 어렵다,
글로벌 캐시
여러 서버에서 접근할 수 있는 캐시 서버를 구축하여 사용하는 방식이다
네트워크를 통해 데이터를 가져오는 트랜잭션 비용이 있기 때문에 로컬 캐시에 비해 상대적으로 느리다
별도의 서버로 운영되기에 서버 간 데이터 공유에 용이하다.
Redis
Remote Dictionary Server 의 약자로, '키-값' 구조의 데이터를 저장하고 관리하기 위한
오픈소스 기반의 비관계형 데이터 관리 시스템이다.
Redis의 특징