3hoon 2023. 1. 5. 01:21

key, value 구조의 데이터를 저장하고 관리하기 위한 비관계형 데이터베이스
관리 시스템이다.
모든 데이터를 메모리에 저장하고 조회하기때문에 빠르고
지원하는 데이터 형식은
String, Set, Sorted Set, Hash, List 5가지 이다.

Redis의 특징

  1. In memory
  2. 데이터를 메모리에 저장하고 조회하는 특성때문에 빠르다라는 장점이 있다.
  3. 싱글스레드
  4. 서버하나에 여러개의 redis server를 띄울 수 있다. (master - slave)
  5. 메모리를 활용하면서 영속적으로 데이터를 보존함

Master - Slave란 레디스의 데이터를 실시간에 가깝게 다른 레디스에 복사하는 작업으로
서비스를 제공하던 레디스가 다운 되더라도 데이터를 받은 레디스 노드가 서비스를 계속 할 수 있도록
도와주는 역할을 한다.

Caching이란

나중에 요청할 결과를 미리 저장해둔 후 빠르게 서비스해 주는 것을 의미한다.
미리 결과를 캐시저장소에 저장하고 나중에 요청이 오면 그 요청에 대해서 DB를 거치지않고
바로 캐시저장소에 접근하여 요청을 처리하는 기법이다.
이러한 캐시저장소에 유저에게 자주 요청이 오는 데이터를 넣어두고 그 요청을 처리하면
올바른 용도로 사용하고 있다고 볼 수 있다.

캐싱 전략

Cache Aside 전략

처음 사용자가 요청했을때 캐시 메모리에 아무 데이터도 없는 상황

  1. 애플리케이션은 먼저 캐시 저장소에 데이터가 있는지 조회하고 데이터가 없음을 확인
  2. 애플리케이션은 DB에서 데이터를 조회하고 사용자에게 제공
  3. 애플리케이션은 DB에서 가져왔던 데이터를 캐시 저장소에 저장

다음 사용자가 요청했을때는 이미 캐시 저장소에 데이터가 있는 상황

  1. 애플리케이션은 먼저 캐시 저장소에 데이터가 있는지 조회한다. 데이터가 있으므로 제공한다.

Read-Through 전략

DB와 일렬로 배치하고 캐시 미스가 발생하면 데이터베이스에서 누락된 데이터를 캐시에 채우고
이것을 애플리케이션으로 반환한다.

Write-Through 전략

역시 DB와 일렬로 배치하고 데이터를 DB에 저장할때마다 캐시 저장소에 데이터를 추가하거나 업데이트한다.
캐시 저장소를 항상 최신 상태로 유지할 수 있다.