Memo/짧은 메모

Redis

생각없이 해도 생각보다 좋다. 2023. 6. 22. 19:07

Redis

  • key, value 구조의 비정형 데이터를 저장 및 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템(DBMS)
  • 인메모리 데이터 구조를 가진 저장소

기타 설명

  • 비정형 데이터
    • 식별 가능한 구조나 아키텍처가 없는 데이터, 관계형 DB에 적합하지 않음
  • 비관계형 DB
    • 행과 열로 이루어진 테이블 형식(관계형 DB)을 사용하지 않는 DB, 특정 요구 사항에 맞게 최적화된 스토리지 모델로 사용됨
  • 인메모리 데이터베이스
    • 디스크가 아닌 주 메모리에 모든 데이터를 보유하는 데이터베이스
    • 장점: 빠른 데이터 접근 속도
    • 단점: 휘발성 메모리 저장 방식

Redis의 용도

  • DB
  • 캐시 서버
  • 메세지 브로커

Redis를 쓰는 이유

  • 대규모 사용자로 인한 과부하를 방지하기 위해 캐시 서버로 Redis를 사용한다.
    • 한 번 읽어온 데이터를 캐시 서버에 저장하고, 이후 같은 요청이 들어오면 DB까지 거치는 것이 아니라 캐시 서버에 저장된 값으로 요청을 처리하기 때문에 과부하를 방지하고 속도 성능 개선을 꾀할 수 있다.

Redis 특징

  • key, value 구조이기 때문에 쿼리를 사용하지 않는다.
  • 디스크가 아닌 메모리를 통해서 데이터를 처리하기 때문에 속도면서 유리하다.
  • String, Lists, Sets, Sorted Sets, Hashes 자료 구조 지원
  • Single Threaded 형식의 명령 처리방식을 갖는다.
    • 한 번에 하나의 명령만 처리 가능
    • 앞선 명령을 처리해야 이후 명령을 처리할 수 있음

Redis 사용 시 주의점

  • 인메모리 데이터베이스이기 때문에 서버 장애 시 발생할 수 있는 데이터 휘발에 대한 대비가 필요함.
  • 싱글 스레드 명령 처리방식을 사용하기 때문에 처리 시간이 긴 요청을 피해야 한다.

캐시 서버 패턴

  • look aside cache

    1. 클라이언트 요청
    2. cache 서버에 데이터가 존재하는지 확인
    3. cache 서버에 데이터가 있다면, DB를 거치지않고 요청에 대한 결과값을 바로 반환
    4. cache 서버에 데이터가 없다면, DB를 거쳐 데이터를 조회하고 cache 서버에 데이터를 저장하면서 요청에 대한 결과값을 반환
    • select에 대한 패턴으로 파악
  • write back

    1. 모든 데이터를 cache 서버에 저장
    2. 특정 시간동안 cache 서버에 데이터가 유지됨
    3. cache 서버에 있는 데이터를 모두 DB에 저장
    4. DB에 저장된 cache 서버의 데이터를 삭제
    • insert에 대한 패턴으로 파악

Redis 참고 링크

'Memo > 짧은 메모' 카테고리의 다른 글

CI/ CD 파이프라인  (0) 2023.06.22
Collections 시간 복잡도  (0) 2023.04.06
[Github] .md 파일에 이미지 및 동영상 넣기  (0) 2023.01.18
[cmd] where 명령어  (0) 2022.12.31
[Git] .idea 디렉토리 & .iml 파일  (0) 2022.12.18