지구정복
[Redis] Redis 개념 및 구성요소 본문
공식 페이지 : redis.io/
1. 개념
Redis는 분산 캐시 시스템이면서 NoSQL 데이터베이스처럼 대규모 데이터 관리 능력도 갖춘 IMDG(In-Memory Data Grid) 소프트웨어이다. 마찬가지로 키-값 형식의 데이터 구조를 분산 서버상의 메모리에 저장하면서 고성능의 응답 속도를 보장한다.
HBase와의 차이점은 대규모로 발생되는 메시지성 실시간 데이터들 중에 일부 특정 데이터만 HBase에 저장하기 전에 Redis에 저장할 필요가 있을 경우에 사용된다.
그래서 다양한 데이터 타입을 지원해서 단순히 키-값 형태의 데이터뿐만 아니라 더 복잡한 데이터들도 저장할 수 있다. 또한 인메모리 데이터를 영구적으로 저장할 수 있는 스냅샷 기능을 제공하며, 데이터 유실에 대비해 AOF(Append Only File) 기능으로 정합성(=무결성)을 보장한다. 그리고 NoSQL 데이터베이스의 주요 특징인 데이터 샤딩(Sharding)과 복제(Replication)도 지원하고 있어서 높은 성능이 필요한 서비스에서 주로 사용된다.
(샤딩 : 데이터 셋을 다수의 데이터베이스에 쪼갠 뒤 저장하는 방법 -> 데이터를 분산 저장함으로써 트래픽을 분산시켜 성능을 좋아지게 함.
복제 : 말 그래도 복제하는 것. 백업. 에러시 복제 DB를 둠으로써 메인 DB가 장애가 생겨도 복제 DB에서 정상적인 서비스를 빠르게 구성할 있게 하는 것이 복제의 목적.
2. 구성요소
-Master : 분산 노드 간의 데이터 복제와 Slave 서버의 관리를 위한 마스터 서버
-Slave : 다수의 Slave 서버는 주로 읽기 요청을 처리하고, Master 서버는 쓰기 요청을 처리한다.
-Sentinel : 레디스 3.x 버전부터 지원하는 기능. Master 서버에 문제가 발생할 경우 새로운 Master를 선출하는 기능이다.
-Replication : Master 서버에 쓰인 내용을 Slave 서버로 복제해서 동기화 처리하는 것
-AOF/Snapshot : 데이터를 영구적으로 저장하는 기능, 명령어를 기록해서 AOF와 스냅샷 이미지 파일 방식을 지원한다.
'데이터 엔지니어링 정복 > Hadoop Ecosystem' 카테고리의 다른 글
[Esper] Esper 개념 및 구성요소 (0) | 2021.05.08 |
---|---|
[Storm] Storm 개념 및 구성요소 (0) | 2021.05.08 |
[Flume] Source, Channel, Sink, Interceptor의 종류 및 예제 (0) | 2021.05.06 |
[Cloudera Manager] 클라우데라 매니저로 Flume, Kafka 설치하기 (0) | 2021.05.06 |
[Flume, Kafka] 개념 및 아키텍처 (0) | 2021.05.06 |