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)을 가리켰다
특징
- 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 트랜잭션을 지원하지 않으며, 높은 데이터 무결성이 요구되는 경우 제약이 있을 수 있음
320x100
댓글