본문 바로가기

in memory storage/Reids

[Redis] About Redis

반응형

redis_logo

Remote Dictionary Server의 약어인 Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열로 사용하는 빠르고 오픈 소스, 인 메모리 키-값 데이터 스토어입니다. 이 프로젝트는 Redis의 원 개발자인 Salvatore Sanfilippo 씨가 이탈리아 스타트업의 확장성을 높이려 노력하는 과정에서 시작되었습니다. 현재 Redis는 1밀리초 미만의 응답 시간을 제공하므로 게임, 광고 기술, 금융 서비스, 의료 서비스 및 IoT 분야에서 실시간 애플리케이션을 위해 초당 수백만 건의 요청을 지원할 수 있습니다. Redis는 캐싱, 세션 관리, 게임, 리더 보드, 실시간 분석, 지형 공간, 라이드 헤일링, 채팅/메시징, 미디어 스트리밍 및 게시/구독 앱에서 주로 사용됩니다.

Redis는 데이터를 디스크에 저장하는 데이터베이스와는 달리 모든 데이터를 메모리에 저장한다. 이를 통해 데이터를 가져오기 위한 디스크 액세스 시간을 줄일 수 있다. Redis는 다양한 데이터 구조, 고가용성, 지리 공간, Lua 스크립팅, 트랜잭션, 온디스크 지속성 및 클러스터 지원을 제공하므로 실시간 앱을 좀 더 쉽게 구축할 수 있다.

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용 Amazon ElastiCache에 대해 자세히 알아보기

반응형

'in memory storage > Reids' 카테고리의 다른 글

[Redis] PHP 연동  (0) 2019.05.12
[Redis] Centos7 Redis 설치  (0) 2019.05.12