레디스(Redis)

Think_Positively·2021년 4월 27일
0

Redis

레디스는 분산 캐시 시스템이면서 NoSQL 데이터베이스처럼 대규모 데이터 관리 능력도 갖춘 IMDG(In-Memory Data Grid) 소프트웨어다. 레디스는 키/값 형식의 데이터 구조를 분산 서버상의 메모리에 저장하면서 고성능의 응답 속도를 보장한다. 인메모리 데이터를 영구적으로 저장할 수 있는 스냅샷 기능을 제공하며, 데이터의 유실에 대비해 AOF(Append Only File) 기능으로 정합성을 보장한다.

레디스 아키텍처

주요 구성 요소설명
Master분산 노드 간의 데이터 복제와 Slave 서버의 관리를 위한 마스터 서버
Slave다수의 Slave 서버는 주로 읽기 요청을 처리하고, Master 서버는 쓰기 요청을 처리
Sentinel레디스 3.x부터 지원하는 기능으로, Master 서버에 문제가 발생할 경우 새로운 Master를 선출하는 기능
ReplicationMaster 서버에 쓰인 내용을 Slave 서버로 복제해서 동기화 처리
AOF/Snapshot데이터를 영구적으로 저장하는 기능으로, 명령어를 기록하는 AOF와 스냅샷 이미지 파일 방식을 지원

레디스의 특징

1) 싱글스레드 기반 명령 수행

  • 이를 통해 Atomic Operation을 보장하며 Concurrency(동시성)지원

2) Key-Value 기반으로 데이터 저장
3) 다양항 데이터 타입 지원

  • string, set, hash, sorted-set, lists, bitmaps, hyperloglogs, geospatial index, stream

4) Master/Slave 구현 용이

  • Master/Slave와 같은 Redis Replication뿐만 아니라 Redis cluster를 이용한 분산처리, Redis Sentinel을 이용한 장애복구 시스템 제공.

현재 아키텍처에서 레디스 활용

현재 구성된 소프트웨어 아키텍처에서 HBase를 사용하면서 Redis도 사용한다. HBase는 운전자의 모든 상태 정보를 저장하고, Redis에는 운전자의 특정 패턴을 감지한 이벤트 결과만 저장한다. 그렇게되면 주변 응용 시스템에서 Redis에 적재된 정보를 빠르게 조회해서 활용하게 된다.


Reference

https://akasai.space/what-is-redis/ - Redis란?
실무로 배우는 빅데이터 기술 - 김강원 지음/위키북스

profile
데이터 엔지니어를 꿈꾸며

0개의 댓글