이번 시간에는 비관계형 데이터베이스 중
하나인 Redis 에 대해 알아보는 시간을 가져봅시다.
Redis란?
Redis 공식문서 사이트에 들어가면
첫 번째 문단에 바로 이런 말이 적혀있습니다.
Redis는 수백만 명의 개발자가 데이터 베이스, 캐시, 스트리밍
엔진 및 메시지 브로커로 사용하는 오픈 소스이며
메모리 내 데이터 저장소입니다.
5년 연속 가장 사랑받는 데이터베이스로
선정된 Redis는 개발자와 설계자 및
오픈 소스 기여자로 구성된 커뮤니티를
중심으로 점차 성장해온 데이터 베이스입니다.
Redis의 핵심 기능
Redis에는 총 6가지의 핵심 기능이 존재합니다.
- 메모리 내 데이터 구조
- 문자열, 해시, 목록, 집합, 정렬된 집합, 스트림 등을
지원하는 "데이터 구조 서버"로 알려져 있습니다.
- 문자열, 해시, 목록, 집합, 정렬된 집합, 스트림 등을
- 프로그램을 직접 짤수 있음
- Lua를 이용해 Server-side Scripting과 Redis Functions를
사용해 서버측 저장 프로시저 구현
- Lua를 이용해 Server-side Scripting과 Redis Functions를
- 확장성
- C, C++ 및 Rust에서 Redis에 대한 사용자 정의 확장을
구축하기 위한 모듈 API
- C, C++ 및 Rust에서 Redis에 대한 사용자 정의 확장을
- 지속성
- 빠른 액세스를 위해 데이터 세트를 메모리에 보관하지만
재부팅 및 시스템 오류에서도 영구 저장소에 대한 모든
쓰기 기능을 유지할 수 있음
- 빠른 액세스를 위해 데이터 세트를 메모리에 보관하지만
- 클러스터링
- 해시 기반 샤딩기능을 통해 수평 확장, 클러스터 확장 시
모든 자동 재파티셔닝을 통해 수백만 개의 노드로
확장이 가능함
- 해시 기반 샤딩기능을 통해 수평 확장, 클러스터 확장 시
- 고가용성
- 독립적인 실행형 및 클러스터된 배포 모두에 대해
자동 페일오버(장애 극복 기능)를 통해 복제가 가능합니다.
- 독립적인 실행형 및 클러스터된 배포 모두에 대해
Redis 사용 사례
Redis를 사용하는 사례에 관해서는
총 3가지로 나뉠 수 있습니다.
- 실시간 데이터 저장소
- Redis의 다용도 인메모리 데이터 구조를 사용하면
짧은 대기 시간과 높은 처리량이 필요한 실시간
애플리케이션을 위한 데이터 인프라를 구축가능
- Redis의 다용도 인메모리 데이터 구조를 사용하면
- 캐싱 & 세션 스토리지
- Redis의 속도는 데이터 베이스 쿼리, 복잡한 계산
API 호출 및 세션 상태를 캐싱할 수 있습니다.
- Redis의 속도는 데이터 베이스 쿼리, 복잡한 계산
- 스트리밍 & 메시지
- 스트림 데이터 유형을 사용하면 고속 데이터 수집
메시징, 이벤트 소싱 및 알림을 사용할 수 있습니다.
- 스트림 데이터 유형을 사용하면 고속 데이터 수집
Redis Stack
Redis Stack은 Redis를 최신 데이터 모델과
프로세싱 엔진으로 확장하여 완벽한 개발자
경험을 제공합니다.
소스를 다운로드하거나, 좋아하는 패키지
관리자를 사용하여 설치하거나 클라우드에서
무료로 사용할 수 있습니다.
- Redis Stack Server를 사용하면 검색 가능한 JSON,
시계열 및 그래프 데이터 모델 및 확장된 확률 데이터
구조로 응용프로그램을 빌드할 수 있습니다. - Redis Stack 개체 매핑 및 클라이언트 라이브러리를
사용하여 신속하게 생산성을 높일 수 있습니다. - Redislnsight를 통해 Redis 데이터를 시각화하고
최적화할 수 있습니다.
참고 문서
'백엔드 > redis' 카테고리의 다른 글
[Redis] Redis - Redis 리스트 (0) | 2023.02.08 |
---|---|
[Redis] Redis - Redis 문자열 (0) | 2023.01.31 |
[Redis] Redis 설치하기 - Linux 기준 (0) | 2023.01.30 |