본문 바로가기
DB/Redis

Redis란?

by Dev Lighthouse 2024. 11. 16.
320x100
320x100

Redis

Remote Dictionary Server

  • OpenSource, In-memory Data Store
  • made by ANSI-C

 

* ANSI C(C언어)

ANSI C, ISO C, 표준 C(Standard C)는 미국 국립 표준 협회(ANSI)와 국제 표준화 기구(ISO)가 출판한 C 프로그래밍 언어의 이후 표준들을 가리킨다. 역사적으로 이 이름들은 오리지널의 가장 잘 지원되는 버전의 표준(C89 또는 C90)을 가리켰다

 

C (프로그래밍 언어) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. C패러다임명령형 프로그래밍 (절차적 프로그래밍), 구조적 프로그래밍설계자데니스 리치개발자데니스 리치, 벨 연구소발표일1972년최근 버전C17최근 버전 출시

ko.wikipedia.org

 

특징

  • Key-Value Structure
  • In-Memory
  • Persistence(Redis DataBase + Append Only File 설정 활성화 해야됨)
  • Single Thread
  • Cluster Mode(+ Single, Sentinel Mode)

활용 종류

  • Caching - 조회, 사용자 로그인 세션(Session) 관리, 임시 비밀번호(One Time Password)
  • Pub/Sub - 채팅
  • Message Broker - 작업or메시지를 Queue에 쌓고 처리 가능
  • Rate Limiter - 처리율 제한장치 구현 가능. Window 사용(Fixed/Sliding)
  • Real-time Analysis/Calculate - Geofencing(지리적 이벤트 감지), Rank(순위표), Visitor Count(방문자 수 계산)

장/단점

장점

  • 높은 성능 - Memory Based 데이터 저장소이기때문에 Disk Based 저장소보다 훨씬 빠른 Read/Write 속도
  • 다양한 데이터 타입 지원 - 레디스에서 제공하는 List/Set/Hash 등 다양한 데이터 타입을 사용해 유연한 처리
  • 단순/가벼운 구조 - ANSI-C로 구현되어 있어 적은 메모리로 효율적인 데이터 처리 가능
  • 영속화 옵션 - In-Memory 저장소이지만 AOF, RDB와 같은 영구 저장 기능을 통해 데이터 보존 가능
  • 확장성/고가용성 - Redis Cluster와 Sentinel을 이용해 데이터 분산 처리 및 고가용성(HA) 지원

단점

  • 메모리 의존성 - 모든 데이터를 메모리에 저장하기때문에 메모리 용량이 제한적이며, 데이터 크기가 큰 경우 큰 비용이 들 수 있음. OOM 주의
  • 단일 스레드 기반 - CPU코어를 모두 활용하지 못하며, 높은 동시성을 요구하는 환경에서는 병목현상이 발생할 수 잇음
  • 복잡한 클러스터 구성 - Redis Cluster 설정은 쉽지 않음
  • 데이터 손실 가능성 - AOF/RDB 설정이 적절하지 않거나 비정상 종료 시 데이터가 손실될 수 있음
  • 트랜잭션 지원 미흡 - 완벽한 ACID 트랜잭션을 지원하지 않으며, 높은 데이터 무결성이 요구되는 경우 제약이 있을 수 있음
 
  1.  

 

댓글