Redis

데이터베이스, 캐시, 메시지 브로커 및 대기열로 사용하는 빠른 오픈 소스 인 메모리 데이터 스토어.

Redis란 무엇입니까?

Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열로 사용하는 빠른 오픈 소스 인 메모리 키-값 데이터 스토어입니다. 1밀리초 미만의 응답 시간을 제공하므로 게임, 광고 기술, 금융 서비스, 의료 서비스 및 IoT 분야에서 실시간 애플리케이션을 위해 초당 수백만 건의 요청을 지원할 수 있습니다. Redis는 캐싱, 세션 관리, 실시간 분석, 지리 공간, 채팅/메시징, 미디어 스트리밍 및 게임 순위표에서 주로 사용됩니다.

Redis는 어떻게 작동합니까?

데이터를 디스크 또는 SSD에 저장하는 데이터베이스와는 달리 모든 Redis 데이터는 메모리에 상주합니다. 디스크에 액세스할 필요가 없으므로 Redis와 같은 인 메모리 스토어는 검색 시간 지연을 방지하고 수 마이크로초 만에 데이터에 액세스할 수 있습니다. Redis는 다양한 데이터 구조, 고가용성, 지리 공간, Lua 스크립팅, 트랜잭션, 온디스크 지속성 및 클러스터 지원을 제공하므로 인터넷 규모의 실시간 앱을 좀 더 쉽게 구축할 수 있습니다.

Redis용 Amazon ElastiCache

암호화, 온라인 클러스터 크기 조정, 고가용성 및 규정 준수가 지원되는 완전관리형 Redis. 자세히 알아보기 >>

Redis의 이점

인 메모리 데이터 스토어

데이터 대부분을 디스크 또는 SSD에 저장하는 PostgreSQL, Cassandra, MongoDB 등 다른 데이터베이스와는 달리 모든 Redis 데이터는 서버의 주 메모리에 상주합니다. 작업을 위해 대부분 디스크까지 왕복해야 하는 전통적인 디스크 기반 데이터베이스와 대조적으로, Redis와 같은 인 메모리 데이터 스토어는 이와 같은 단점이 없습니다. 따라서 더 많은 작업을 처리하고 더 빠른 응답 시간을 지원할 수 있습니다. 따라서 평균 읽기 또는 쓰기 작업 속도 1밀리초 미만이라는 놀랍도록 빠른 성능으로 초당 수백만 건의 작업을 지원할 수 있습니다.

유연한 데이터 구조

제한적인 데이터 구조를 제공하는 단순한 키 값 데이터 스토어와 달리 Redis에서는 애플리케이션 요구 사항을 충족할 수 있도록 다양한 데이터 구조를 지원합니다. Redis 데이터 유형은 다음과 같습니다.

  • 문자열 – 최대 512MB 크기의 텍스트 또는 바이너리 데이터
  • 목록 – 추가된 순서가 유지되는 문자열 모음
  • 세트 – 순서가 유지되지 않는 문자열 모음으로 다른 세트 유형과 교차, 통합 및 비교 가능
  • 정렬된 세트 – 값을 기준으로 순서가 지정된 세트
  • 해시 – 필드 및 값의 목록을 저장하는 데이터 구조
  • 비트맵 – 비트 수준 작업을 제공하는 데이터 유형
  • HyperLogLogs – 데이터 세트 내 고유 항목을 추정하기 위한 확률적 데이터 구조

단순성 및 사용 편의성

Redis에서는 더 짧은 코드 작성으로도 애플리케이션의 데이터를 저장, 액세스 및 사용할 수 있으므로 코드가 간소화됩니다. 예를 들어 애플리케이션의 데이터가 해시맵에 저장되어 있는데 이를 데이터 스토어에 저장하려는 경우, Redis 해시 데이터 구조를 사용하면 간단하게 데이터를 저장할 수 있습니다. 해시 데이터 구조가 없는 데이터 스토어에서 유사한 작업을 수행하려면 형식을 변환하기 위해 더 긴 코드가 필요합니다. Redis에는 데이터를 조작하고 상호 작용할 수 있는 네이티브 데이터 구조와 많은 옵션이 함께 제공됩니다. Redis 개발자는 백 개가 넘는 오픈 소스 클라이언트를 사용할 수 있으며, Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go를 비롯한 다수의 언어가 지원됩니다.

복제 및 지속성

Redis는 기본-복제 아키텍처를 사용하며 비동기식 복제를 지원하므로 데이터가 여러 복제 서버에 복제될 수 있습니다. 따라서 주 서버에 장애가 발생하는 경우 요청이 여러 서버로 분산될 수 있으므로 향상된 읽기 성능과 더 빠른 복구 기능을 제공할 수 있습니다. Redis는 지속성을 위해 특정 시점 백업(Redis 데이터 세트를 디스크로 복사)를 지원합니다.

높은 가용성 및 확장성

Redis는 단일 노드 기본 또는 클러스터링된 토폴로지에서 기본-복제 아키텍처를 제공합니다. 따라서 가용성이 뛰어난 솔루션을 구축하여 일관된 성능과 안정성을 제공할 수 있습니다. 클러스터 크기를 조정해야 하는 경우, 스케일업, 스케일인 또는 스케일아웃할 수 있는 다양한 옵션이 제공됩니다. 따라서 수요에 맞춰 클러스터를 확장할 수 있습니다.

확장성

Redis는 역동적인 커뮤니티에서 지원하는 오픈 소스 프로젝트입니다. Redis가 개방형 표준을 기반으로 하고 오픈 데이터 형식을 지원하며 다양한 클라이언트 세트를 제공하므로 공급업체 종속이나 기술 종속이 없습니다.

캐싱

Redis는 데이터 액세스 지연 시간을 줄이고, 처리량을 늘리며, 관계형 또는 NoSQL 데이터베이스와 애플리케이션의 로드를 줄이도록 가용성이 뛰어난 인 메모리 캐시를 구현하기에 매우 적합합니다. Redis를 사용하면 빈번하게 요청되는 항목을 1밀리초 미만의 응답 시간으로 지원할 수 있고, 고가의 백엔드를 추가하지 않고도 손쉽게 확장하여 더 많은 로드를 처리할 수 있습니다. 데이터베이스 쿼리 결과 캐싱, 영구 세션 캐싱, 웹 페이지 캐싱, 주파수 사용 객체(이미지, 파일, 메타데이터 등) 캐싱은 Redis를 사용한 캐싱의 주요 예입니다.

채팅, 메시징 및 대기열

Redis는 패턴 매칭과 다양한 데이터 구조(목록, 정렬된 세트, 해시 등) 옵션으로 게시/구독을 지원합니다. 따라서 Redis에서는 고성능 채팅방, 실시간 코멘트 스트림, 소셜 미디어 피드 및 서버 상호 통신을 지원할 수 있습니다. Redis 목록 데이터 구조를 사용하면 간단한 대기열을 손쉽게 구현할 수 있습니다. 목록은 자동 작업 및 차단 기능을 제공하므로 신뢰할 수 있는 메시지 브로커 또는 순환 목록이 필요한 다양한 애플리케이션에 적합합니다.

게임 순위표

Redis는 실시간 순위표를 구축하려는 게임 개발자에게 인기 있는 서비스입니다. 요소의 고유성을 제공하면서 점수로 정렬된 목록을 유지하는 Redis Sorted Set 데이터 구조를 사용하기만 하면 됩니다. 실시간 순위 목록을 생성하는 것은 사용자의 점수가 변경될 때마다 이를 업데이트하는 것만큼 쉽습니다. 타임스탬프를 점수로 사용함으로써 Sorted Set를 통해 시계열 데이터를 처리할 수도 있습니다.

세션 스토어

고가용성과 지속성을 갖춘 인 메모리 데이터 스토어인 Redis는 인터넷 규모의 애플리케이션을 위해 세션 데이터를 저장 및 관리하려는 애플리케이션 개발자에게 인기 있는 서비스입니다. Redis는 사용자 프로필, 자격 증명, 세션 상태, 사용자별 개인화 등과 같은 세션 데이터를 관리하는 데 필요한 1밀리초 미만의 지연 시간, 규모 및 복원력을 제공합니다.

다양한 미디어 스트리밍

Redis는 라이브 스트리밍 사용 사례를 지원할 수 있는 빠른 인 메모리 데이터 스토어를 제공합니다. Redis는 CDN이 동시에 수백만 명의 모바일 및 데스크톱 사용자에게 비디오를 스트리밍할 수 있도록 사용자 프로필 및 열람 기록에 대한 메타데이터, 수백만 사용자의 인증 정보/토큰, 매니페스트 파일을 저장하는 데 사용할 수 있습니다.

지리 공간

Redis는 대규모의 실시간 지리 공간 데이터를 빠르게 관리할 수 있도록 특별히 구축된 인 메모리 데이터 구조 및 연산자를 제공합니다. 지리 공간 데이터를 실시간으로 저장, 처리 및 분석하는 GEOADD, GEODIST, GEORADIUS 및 GEORADIUSBYMEMBER와 같은 명령을 사용하면 Redis에서 쉽고 빠르게 지리 공간을 처리할 수 있습니다. Redis를 사용하여 주행 시간, 주행 거리, 안내 표시와 같은 위치 기반 기능을 애플리케이션에 추가할 수 있습니다.

Machine Learning

데이터 중심의 최신 애플리케이션에서 데이터의 막대한 볼륨, 다양성 및 속도를 신속하게 처리하고 의사 결정을 자동화하기 위해서는 기계 학습이 필요합니다. 게임 및 금융 서비스에서 사기 탐지, 게임 기술에서 실시간 입찰, 데이트 및 카풀 서비스에서 매치메이킹과 같은 사용 사례의 경우, 수십밀리초 이내로 라이브 데이터를 처리하고 의사 결정을 내릴 수 있는 성능이 가장 중요합니다. Redis는 기계 학습 모델을 신속하게 구축, 교육 및 배포할 수 있는 빠른 인 메모리 데이터 스토어를 제공합니다.

실시간 분석

Redis는 Apache Kafka, Amazon Kinesis 등과 같은 스트리밍 솔루션에 인 메모리 데이터 스토어로 사용하여 1밀리초 미만의 지연 시간으로 실시간 데이터를 수집, 처리 및 분석할 수 있습니다. Redis는 소셜 미디어 분석, 광고 타게팅, 개인화 및 IoT와 같은 실시간 분석 사용 사례에 적합합니다.

언어 지원

Redis에서는 다음과 같이 대부분의 주요 프로그래밍 언어 및 프로토콜을 지원합니다.

Python

Java

PHP

AWS 기반의 완전관리형 Redis

Amazon에서는 완전관리형 Redis서비스인 Redis용 Amazon ElastiCache를 제공하며 AWS 프리 티어에서 무료 평가판을 사용할 수 있습니다. Redis용 Amazon ElastiCache를 사용하면 클라우드에서 Redis 배포를 손쉽게 설정, 운영 및 확장할 수 있습니다. Amazon ElastiCache에서는 비용 효율적이고 크기 조정 가능한 하드웨어 용량을 갖춘 인터넷 규모의 Redis를 몇 분 만에 배포할 수 있습니다.
간단한 세 단계를 거쳐 Redis용 Amazon ElastiCache를 무료로 시작할 수 있습니다.
Redis용 Amazon ElastiCache

가입

Amazon ElastiCache 프리 티어에 액세스합니다.
Redis용 Amazon ElastiCache 학습

간단한 자습서로 학습

Redis 클러스터를 생성하는 방법을 알아봅니다.
Redis용 ElastiCache 시작하기

구축 시작

사용 설명서를 참조하여 구축을 시작합니다.