Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스 메모리 내 데이터 구조 저장소입니다.
문자열, 해시, 목록, 세트, 범위 쿼리가 있는 정렬된 세트 등을 포함하여 다양한 데이터 구조를 저장하고 조작할 수 있기 때문에 일반적으로 “데이터 구조 서버”라고 합니다.
Redis는 메모리 내 특성으로 인해 높은 처리량과 짧은 대기 시간으로 매우 빠르고 효율적입니다.
낮은 응답 시간으로 많은 양의 읽기 및 쓰기를 처리할 수 있으므로 게임, 메시징 및 스트리밍과 같은 실시간 애플리케이션에 이상적입니다.
Redis는 데이터 내구성과 내결함성을 보장하기 위해 스냅샷 및 첨부 전용 파일을 포함한 다양한 데이터 지속성 옵션을 지원합니다.
또한 게시/구독 메시징, Lua 스크립팅, 트랜잭션 및 클러스터링과 같은 다양한 기능을 제공하므로 확장 가능한 고성능 애플리케이션을 구축하기 위한 다재다능하고 유연한 도구입니다.
Redis는 Twitter, GitHub, Airbnb 및 Pinterest를 비롯한 전 세계 개발자 및 비즈니스에서 사용됩니다.
오픈 소스 BSD 라이선스에 따라 사용할 수 있으며 무료로 다운로드하여 사용할 수 있습니다.
Redis의 주요 기능은 다음과 같습니다.
- 인메모리 스토리지: Redis는 디스크 대신 RAM에 데이터를 저장하는 인메모리 데이터 저장소로 매우 빠른 읽기 및 쓰기 속도를 지원합니다.
- 데이터 구조: Redis는 문자열, 해시, 목록, 세트, 정렬된 세트 등을 포함한 다양한 데이터 구조를 지원하므로 데이터를 저장하고 조작하기 위한 다목적 도구입니다.
- 지속성: Redis는 스냅샷 및 첨부 파일과 같은 다양한 지속성 옵션을 제공하여 데이터를 영구적으로 유지하고 시스템 충돌이나 정전 시에도 유지됩니다.
- 게시/구독 메시징: Redis는 클라이언트 간에 실시간 메시징 및 알림을 가능하게 하는 게시/구독 메시징 시스템을 제공하므로 채팅 시스템, 라이브 대시보드 및 게임 플랫폼과 같은 실시간 애플리케이션을 구축하는 데 이상적입니다.
- Lua 스크립팅: Redis는 Lua 스크립팅을 지원하므로 개발자가 사용자 지정 스크립트를 작성하여 데이터를 조작하고 복잡한 작업을 수행할 수 있습니다.
- 트랜잭션: Redis는 모든 작업이 함께 성공하거나 실패하도록 여러 작업을 함께 그룹화하고 원자적으로 실행하는 트랜잭션을 지원합니다.
- 클러스터링: Redis는 여러 노드에 데이터를 분산하여 수평 확장을 가능하게 하는 클러스터링을 지원하여 성능과 안정성을 향상시킵니다.
- 고가용성: Redis는 기본적으로 마스터-슬레이브 복제 및 자동 장애 조치와 같은 기능을 통해 고가용성을 지원합니다.