Redis란? (REmote DIctionary Server)
![https://blog.kakaocdn.net/dn/c2ocA4/btrEbExl1vC/JVMpf7i3FQtJHoaTFXn0Q1/img.png](https://blog.kakaocdn.net/dn/c2ocA4/btrEbExl1vC/JVMpf7i3FQtJHoaTFXn0Q1/img.png)
Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)입니다.
데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소입니다.
✅D**B-Engines.com**
은 다양한 데이터베이스 관리 시스템(DBMS)에 대한 인기도나 트렌드를 평가하고 순위를 매기는 웹사이트입니다.
주요 특징
- 성능 : RAM에서 데이터를 처리하기 때문에 높은 처리 속도를 제공합니다. 따라서 초당 수십만 건의 연산을 처리할 수 있습니다.
- 데이터 구조 : 문자열, 리스트, 집합, 해시, 정렬된 집합, 비트맵, 하이퍼로그로그 등 다양한 데이터 구조를 지원합니다.
- 영속성 : 선택적으로 데이터 변경 시점에 디스크에 스냅샷을 저장하거나, 변경 사항을 로그 파일에 기록하여 재부팅 시 데이터 복구를 지원합니다.
- 복제 : 기본적인 마스터-슬레이브 복제를 지원하여 데이터의 가용성과 안정성을 높일 수 있습니다.
- 파티셔닝 : 데이터를 여러 서버에 분산 저장하여 확장성을 향상시키는 기능을 지원합니다.
- 트랜잭션 : 기본적인 트랜잭션 기능을 제공하여 여러 명령의 순차적인 실행을 보장합니다.
단점
- 메모리 한계 : 주로 메모리 기반으로 작동하기 때문에, 사용 가능한 메모리에 제한됩니다. 큰 데이터 세트를 관리하려면 상당한 메모리가 필요하며, 이로 인해 비용이 증가할 수 있습니다.
- 지속성 오버헤드 : 영속성을 위한 디스크 I/O는 성능에 영향을 줄 수 있습니다.
- 클러스터 복잡성 : 레디스 클러스터 구성은 초기 설정과 관리가 복잡할 수 있습니다.
- 데이터 보호 : 메모리 내 데이터는 잠재적으로 취약할 수 있습니다. 적절한 백업 및 복구 전략이 필요합니다.
활용 사례
- 캐싱 : 고속의 데이터 접근이 필요한 시스템에서 중요한 사용처입니다.