[Redis]Redis를 알아보자

Ungs·2023년 12월 17일
0

Redis

목록 보기
1/4

Redis (Remote Dictionary Server)

Redis는 Remote(원격)에 위치하고 프로세스로 존재하는 In-Memory 기반의 Dictionary(key-value) 구조 데이터 관리 Server 시스템이다.

key-value 구조란, RDMBS (ex. mysql) 관계형 데이터가 아닌 NoSQL 비 관계형 구조로서 '키-값' 형태로 단순하게 저장되는 구조.

쿼리연산 지원하지 않고, 고속 읽기와 쓰기에 최적

Redis는 In-Memory 솔루션으로 분류되기도 하여 DB, Cache, Message Queue, Shared Memory 용도로 사용될 수 있다.

기존 데이터베이스처럼 ssd에 저장하는게 아님 ram에서 처리를 하기에 작업속도가 빠름!

Redis - Cache

캐시(Cache)

Cache 한번 조회된 데이터를 미리 특정공간에 저장해놓고, 똑같은 요청이 오면 서버에게 요청하지 않고 저장해놓은 데이터를 제공하여 빠르게 제공해주는 것을 의미.

캐시의 구조 패턴

Look aside Cache 패턴

look aside cache는 캐시를 한 번 접근하여 데이터가 있는지 판단한 후, 있다면 캐시의 데이터를 사용하고 없으면 실제 DB 또는 API를 호출 

  1. 클라이언트에서 데이터 요청
  2. 서버에서 캐시에 데이터 존재 유무 확인
  3. 데이터가 있다면 캐시의 데이터 사용 (빠른 조회)
  4. 데이터가 없다면 실제 DB 데이터에 접근
  5. DB에서 가져 온 데이터를 캐시에 저장하고 클라이언트에 반환

Write Back 패턴

write back은 주로 쓰기 작업이 굉장히 많아서, INSERT 쿼리를 일일이 날리지 않고 한꺼번에 배치 처리를 하기 위해 사용

엄청 큰 커뮤니티에서 많은 사람이 동시에 글을 작성하면 DB에 갑작스럽게 많은 요청이 들어와 DB서버가 죽을수도 있다. 이때 write back 기반의 캐시를 사용하면 캐시 메모리에 데이터를 저장해놓고 이후 DB에 업데이트하면 안전하게 작업 수행 가능.

  1. 우선 모든 데이터를 캐시에 싹 저장
  2. 캐시의 데이터를 일정 주기마다 DB에 한꺼번에 저장 (배치)
  3. DB에 저장했으니 잔존 데이터를 캐시에서 제거

참고 문헌 : REDIS-📚-개념-소개-사용처-캐시-세션-한눈에-쏙-정리

profile
Hi I'm Ungs

0개의 댓글