namu445 2022. 6. 23. 10:03

Redis

  • 메모리 기반 DB => In-memory이기 때문에 휘발성이다.
    • 하지만 영구 저장을 위한 옵션 기능이 있다. => persistence 기능(RDB, AOF)
 

Redis persistence

How Redis writes data to disk (append-only files, snapshots, etc.)

redis.io

  • 조회 결과를 빠르게 전달하거나 데이터를 잠시 저장하기 위해서 사용한다.
  • 다양한 데이터 타입을 지원하고 대부분의 프레임워크와 호환이 가능합니다 => 가장 대중적으로 사용할만합니다
 

Redis data types

Overview of the many data types supported by Redis

redis.io

언제 사용할까

  • Input/Output이 빈번한 경우 DB의 부담을 줄여주기 위해서 => 캐싱
  • 잠깐 사용되는 일회정 정보를 저장할 때 => 세션관리

주의

  • 휘발성 DB임을 항상 주의하고 사용하자 
  • 데이터 정합성이 중요한 경우에는 적합하지 않다 => 디스크 DB와 redis간에 같은 데이터를 유지한는데 항상 시차가 있다
  • 싱글스레드이며 Event Driven방식을 사용하기는 하지만 작업시간이 오래 걸리는 작업은 주의해야한다
  • 메모리 관리가 매우 중요하다
    • 메모리 사용률을 모니터링하면서 50 퍼센트 수준으로 관리하는 것이 좋다 => Input Output이 많은 경우 메모리 사용률이 순간적으로 2배 상승하기도 한다 => 특히 persistence 기능을 사용하는 경우 주의하자 => COW(Copy On Write)
  • 다양한 데이터 타입을 지원하기 때문에 어떤 데이터 타입이 현재 상황에 적합한지 잘 선택해야한다

 

 

 

참고

 

레디스(Redis)는 언제 어떻게 사용하는 게 좋을까

레디스를 사용해 본 적 없는 백엔드, 데이터베이스 개발자를 위해 | 레디스는 시스템 메모리를 사용하는 키-값 데이터 스토어입니다. 인메모리 상태에서 데이터를 처리함으로써 흔히 사용하는

brunch.co.kr

 

Copy-on-write - 기술 - 오픈위키

Copy-on-write Copy On Write란 말 그대로 작성시 이전의 내용을 Copy한다는 뜻이다. 1) Linux(Unix)에서는 자식 프로세스(child process)를 생성(fork)하면 같은 메모리 공간을 공유하게 된다. 그런데 부모 프로세

openwiki.kr

 

[Redis - 7] Redis Server 운영시 주의점들

우아한 테크 코스의 강대명 강사님의 영상을 참조하여 정리합니다.https://www.youtube.com/watch?v=mPB2CZiAkKM제가 간단하게 보려고 정리한 부분이라, 부족한 부분이 많습니다. 혹여 좀 더 잘 정리된 포스

velog.io