개념

[Data] Redis 와 RDS 차이점이 궁금해?

junetudy 2023. 11. 6. 17:24

[ RedisRemote Dictionary Server의 약자 ]

 

키-값 구조(key-value형태)의 비정형 데이터 저장관리 도구에요!

일반적인 RDS는 테이블에 맞춰서 데이터 형태가 정해져 있어서, 데이터를 바꾸기 위해서는 테이블을 바꿔야해요.

하지만, Redis는 비정형 데이터, 즉 데이터베이스 관리시스템(DBMS)입니다!

 

RDS(Relational Database Service)Redis는 둘다 데이터 저장과 관리를 위한 시스템이에요. 

하지만, 목적과 기능적인 면에서 명확한 차이점이 있죠! 이 둘의 주요 차이점은 다음과 같습니다 :) 

 

 

 

1. Redis의 특징을 알아볼까요?

 

1-1. Redis는 오픈 소스의 인 메모리 데이터 구조 저장소로, 캐시, 세션관리, 퍼블리시/서브 스크라이브 시스템, 리더보드 등 빠른 읽기/쓰기가 필요한 상황에서 사용됩니다. 

1-2. 주로 키-값(key-value형태)스토어를 사용되며, 데이터는 메모리에 저장되어 빠른 엑세스가 가능합니다. 

1-3. 데이터 유형에는 문자열, 리스트, 셋, 해시, 정렬된 셋 등이 있으며, 고급 데이터 구조를 지원합니다. 

1-4. 데이터 지속성을 위해 RDS(Redis Database)와 AOF(Append Only File)같은 방식을 제공하지만, 

전통적인 관계형 데이터베이스처럼 복잡한 쿼리나 트랜젝션을 처리하기 위해 설계되진 않아요!

1-5. 분산 환경에서의 성능을 위해 파티셔닝을 지원합니다. 

 

2. Amazon RDS의 특징을 알아볼까요?

 

2-1. Amazon RDS는 AWS(Amazon Web Services)가 제공하는 관계형 데이터베이스 관리 서비스입니다. 

2-2. RDS는 mysql, postgreSQL, Oracle, SQL Server, MariaDB와 같은 여러 관계형 데이터베이스 엔진을 지원해요!

2-3. 데이터는 디스크 기반으로 저장되며, 복잡한 트랜젝션, 조인, 인덱싱 등의 관계형 데이터베이스 기능을 완벽하게 지원합니다. 

2-4. 자동 백업, 복제, 패치 관리와 같은 관리-편의 기능을 제공하고, 데이터 보안 및 안정성에 중점을 둡니다. 

2-5. 확장성과 가용성을 위해 리드 리플리카, 멀티-AZ배포 등의 기능을 제공하죠!

 

 

즉, Redis는 빠른 데이터 액세스를 필요로 하는 인 메모리 데이터 스토어이며, 주로 캐시와 같은 임시 데이터 저장소로 활용되고!

Amazon RDS는 표준 SQL을 사용하는 관계형 데이터베이스 관리 서비스로 더 복잡한 데이터 관리 요구사항을 위한 솔루션에 사용됩니다. 

Redis는 빠른 성능이 필요할 때!

RDS는 데이터의 지속성과 복잡한 쿼리 처리가 중요할 때!

 

 

 

 

 


*서브스크라이브 시스템 : 발행, 구독(publish, subscribe) 모델을 기반으로 하는 메시징 패러다임의 일종. 

이 시스템에서는 메시지를 발행하는 측(퍼블리셔)와 메시지를 구독하는 측(서브스크라이버)가 있습니다. 

서브스크라이버는 관심있는 특정 유형의 메시지나 이벤트를 수신하고자 할때, 해당 토픽(topic)이나 채널(chnnel)을 구독합니다. 

 

 

**발행, 구독 모델의 특징은 다음과 같습니다. 

1. 비동기(Asynchronous) : 발행자와 구독자가 동시에 온라인 상태일 필요 없음.

구독자는 이벤트가 발행될때 알림을 받거나 나중에 확인할 수 있어요.

2. 탈중앙화(Decoupling) : 발행자와 구독자는 서로의 존재를 명확히 인식하지 않아도 됩니다.

발행자는 메시지를 주제에 발행하기만 하면 되고, 구독자는 주제를 구독함으로써 메시지를 받을 수 있어요. 

3. 확장성(Scalability): 새로운 발행자와 구독자를 시스템에 추가하거나 제거하는 것이 비교적 쉽습니다. 

많은 구독자가 동일한 메시지를 동시에 수신할 수 있으므로, 시스템은 크게 확장될 수 있어요.

4. 유연성(Flexibility) : 구독자는 관심있는 메시지 유형을 선택하여 구독할 수 있어요. 그로므로 받고 싶은 정보를 필터링할 수 있죠!

 

***

이 모델은 실시간 웹 애플리케이션, 주식 시세 알림 서비스, 뉴스 피드 업데이트, 실시간 대화형 서비스 등 다양한 분야에서 활용됩니다.

Redis와 같은 시스템은 이러한 서브스크라이브/퍼블리시 기능을 내장하여 개발자가 쉽게 이벤트 기반의 시스템을 구축할 수 있게 지원합니다. 

 

 

 

 

'개념' 카테고리의 다른 글

[API] REST API ?  (2) 2023.11.06
[Data] RDBMS 가 뭐야? 간단하게 설명해줄게  (2) 2023.11.06
[JWT] JWT 토큰 검증  (0) 2023.05.27
[JWT] JWT토큰 개념  (0) 2023.05.27
아직도 인터셉터(Interceptor) 몰라?  (0) 2023.03.17