Practice makes perfect

[BIGDATA Platform] 빅데이터 실시간 적재 기술 : 레디스(Redis) 본문

빅데이터/BIGDATA Platform

[BIGDATA Platform] 빅데이터 실시간 적재 기술 : 레디스(Redis)

kerpect 2020. 6. 12. 22:06

레디스(Redis)란?

: (Redis)Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)입니다.

 

IMDG(In-Memory Data Grid) 소프트웨어(메모리기반으로 되어 있는 소프트웨어) – 분산 캐시 시스템이면서 NoSQL 데이터베이스처럼 대규모 데이터 관리 능력도 갖추고 있습니다. 실질적인 메모리 용량에 있어서는 한계를 가지고 있습니다.(소규모성의 빠른 필터링을 통해 영구 보관할 필요 없을 때 사용하는 데이터 셋)

 

NOSQL: Not Only SQL, 비관계형 데이터베이스

그렇다면 왜, 언제 NOSQL을 쓰는 걸까요? 아주 많은 양의 데이터를 효율적으로 처리가 필요할 때, 데이터의 분산처리, 빠른 쓰기데이터의 안정성이 필요할 때 사용합니다. 특정 서버에 장애가 발생했을 때에도 데이터 유실이나 서비스 중지가 없는 형태의 구조이기 때문에, NOSQL을 사용합니다.

 

 

레디스(Redis)의 특징

 

1) key/value 형식의 데이터 구조를 분산 서버상의 메모리에 저장하면서 고성능의 응답 속도를 보장합니다.

 

2) hash, set, list 등 다양한 자료구조를 지원하기 때문에 다양한 유형의 자료 구조를 저장할 수 있습니다.

 

3) 데이터 유실에 대비한 AOF(Append Only File) 기능으로 정합성 보장합니다.

- 다양한 명령어 구문을 제공을 통해 히스토리들을 하나도 빠짐없이 데이터를 저장하여 손실을 최소화할 수 있습니다.

 

4) 저장된 데이터를 수행하는 업무시스템과 연계하여 처리될 수 있도록 합니다(업무처리의 신속성)

 

5) 휘발성이면서 영속성을 가진 key-value 저장소 입니다.

 

= 대규모 빅데이터 아키텍처에서는 실시간으로 분석한 결과를 레디스에 저장해서 주변 업무 시스템과 결과를 빠르게 공유하는 데 주로 활용.

 

 

레디스(Redis)의 아키텍처

 

 

● Master : 분산 노드 간의 데이터 복재와 Slave 서버의 관리를 위한 마스터 서버입니다.

 

● Slave : 다수의 Slave 서버는 주로 읽기 요청을 처리하고, Master 서버는 쓰기 요청을 처리 합니다.

 

● Sentinel : 레디스3.x에서 지원하는 기능으로, Master 서버에 문제가 발생할 경우 새로운 Master를 선출하는 기능

 

● Replication : Master 서버에 쓰인 내용을 Slave 서버로 복재해서 동기화 처리

 

● AOF/Snapshot : 데이터를 영구적으로 저장하는 기능으로, 명령어를 기록하는 AOF와 스냅샷 이미지 파일 방식 지원