레디스는 분산 캐시 시스템이면서 NoSQL 데이터베이스처럼 대규모 데이터 관리 능력도 갖춘 IMDG(In-Memory Data Grid) 소프트웨어다. 레디스는 키/값 형식의 데이터 구조를 분산 서버상의 메모리에 저장하면서 고성능의 응답 속도를 보장한다. 인메모리 데이터를 영구적으로 저장할 수 있는 스냅샷 기능을 제공하며, 데이터의 유실에 대비해 AOF(Append Only File) 기능으로 정합성을 보장한다.
주요 구성 요소 | 설명 |
---|---|
Master | 분산 노드 간의 데이터 복제와 Slave 서버의 관리를 위한 마스터 서버 |
Slave | 다수의 Slave 서버는 주로 읽기 요청을 처리하고, Master 서버는 쓰기 요청을 처리 |
Sentinel | 레디스 3.x부터 지원하는 기능으로, Master 서버에 문제가 발생할 경우 새로운 Master를 선출하는 기능 |
Replication | Master 서버에 쓰인 내용을 Slave 서버로 복제해서 동기화 처리 |
AOF/Snapshot | 데이터를 영구적으로 저장하는 기능으로, 명령어를 기록하는 AOF와 스냅샷 이미지 파일 방식을 지원 |
1) 싱글스레드 기반 명령 수행
2) Key-Value 기반으로 데이터 저장
3) 다양항 데이터 타입 지원
4) Master/Slave 구현 용이
현재 구성된 소프트웨어 아키텍처에서 HBase
를 사용하면서 Redis
도 사용한다. HBase는 운전자의 모든 상태 정보를 저장하고, Redis에는 운전자의 특정 패턴을 감지한 이벤트 결과만 저장한다. 그렇게되면 주변 응용 시스템에서 Redis에 적재된 정보를 빠르게 조회해서 활용하게 된다.
https://akasai.space/what-is-redis/ - Redis란?
실무로 배우는 빅데이터 기술 - 김강원 지음/위키북스