
내일배움캠프 37일차 TIL : Spring - Redis
컴퓨터에서 캐시는 데이터를 빠르게 접근할 수 있도록 만들어둔 공간을 의미한다.
데이터베이스 캐시는 인메모리 캐시와 쿼리 캐시로 나뉜다.
가장 많이 사용되는 In-Memory Cache 중 하나인 Redis
Redis : Remote Dictionary Server 의 약자 이며 Dictionarysms 자바의 Map과 같이 ( key - value ) 쌍으로 저장된다.
Redis는 데이터를 메모리에 저장하여 매우 빠른 읽기 및 쓰기 성능을 제공한다.
메모리에 저장되기 때문에 대용량 트래픽을 처리해야 하는 시스템에서 Redis는 거의 필수적으로 사용된다.
- 메모리 제약 : 저장소가 메모리이다 보니 용량이 제한적이다.
대규모 데이터를 저장하려면 많은 메모리가 필요하고 이는 가격이 비싸다는 의미- 데이터 관리의 어려움 : NoSQL이므로 복잡한 트랜잭션이나 RDBMS의 기능을 제공하지 않는다.
- 데이터 신뢰성 : 기본적으로 메모리에 저장하기 때문에 서버가 종료되면 데이터가 손실 된다.
DB의 인덱스에 모두 해당하는 내용으로 자주 사용 될 것으로 예상되는 데이터에 적용해야 한다.
- 데이터 접근 빈도 : 자주 조회되는 데이터는 캐싱에 적합하다.
- 데이터 변경 빈도(= 일관성) : 변경이 잦거나 실시간 제공되어야 하는 데이터는 캐싱 대상이 되면 안된다.
- 데이터의 위치 : 내부 시스템에 있는 데이터는 캐싱 효율성이 매우 떨어진다.
- 데이터 사용 패턴 : 쓰기 빈도가 높다면 데이터 일관성이 떨어지므로 캐싱 대상에 부적합하다.