일반 Redis 아키텍처에 대한 이해

황제낙엽 2020.06.19 04:36 조회 수 : 107

sitelink1 https://cafe.naver.com/mongodatabase/3024 
sitelink2  
extra_vars5  
extra_vars6  

Redis DB는 대표적인 KeyValue Database 제품 중에 하나입니다.

또한 Pure In-Memory DBMS이기도 합니다.

간혹 혹자들은 Redis는 In-Memory DB라고 표현하는데 이것은 올바른 표현 방법은 아닙니다.

DBMS는 데이터 저장 구조와 모델을 기준으로 일반적으로 분류하는데 이 경우 RDB, ORDB, OODB, HDB, NDB

그리고 Document DB, KeyValue DB, ColumnFamily DB, Graph DB라고 분류합니다.

데이터 구조와 모델과 관계없이 File기반 DBMS와 In-Memory 기반 DBMS로 분류할 수 도 있는데 이것은

물리적인 데이터 저장 방법 및 운영 방법에 따른 분류 방법이라고 말할 수 있습니다.

결론적으로 Redis는 KeyValue DB이자 In-Memory  DB  유형에 해당하는 제품입니다.

MongoDB를 사용자들 중에 일부는 MongoDB와 Redis를 함께 연동하여 사용하는 경우들이 종종 있습니다.

이것은 순수 In-Memory 기반 DB인 Redis를 데이터 통계, 집계용으로 활용함으로써 시스템 성능 개선을 위해 사용 했었습니다.

최근에는 MongoDB도 순수 In-Memory 저장엔진을 제공하고 있기 때문에 서로 다른 데이터 구조인 Redis를 함께 연동할 필요성이 없어졌습니다.

 

다음은 Redis의 기본 아키텍처 입니다.

 

redis_arch.jpg

 

 

위 Redis 아키텍처는 다음과 깉은 구성요소로 생성됩니다.

 

1)프로세스 :

  - Redis-cli.exe        : Redis 서버에 접속하기 위해 요구되는 Client용 SW  

  - Redis-Server.exe   : Redis 서버 인스턴스를 시작할 때 사용되는 SW

  - Redis-sentinel.exe  : 복제 서버를 구축할 때 Master와 Slave 간에 Fail-Over와 Load-Balance를 담담하는 SW

  

2) 메모리  : 

  - Residence-영역    : 데이터를 처리할 떄 실제 사용되는 메모리 영역

  - Data Structure 영역: 데이터 처리시 관련 메타 정보를 저장, 관리하는 메모리 영역 

 

3) 파일    : 

  - dump 파일,aof 파일 : 사용자 데이터의 일부 또는 전체를 필요에 따라 디스크 상에 파일로 저장할 때 사용되는 파일

 

앞서 설명했던 것처럼 Redis는 순수 In-Memory 기반 DB이지만 필요에 따라 중요한 데이터를 사용자 선택에 따라 파일로 생성할 수는 있습니다

하지만 이것은 Redis 기본 매커니즘이 아니고 사용자의 추가적인 환경 설정에 의해 가능해집니다.