데이터베이스

Redis(Remote Dictionary Server) 에 대해 알아보겠습니다.

forward error correction Circle 2025. 8. 12. 08:47
반응형

Ⅰ. Redis(Remote Dictionary Server) 란?

  메모리 기반의 Key-Value 형태 NoSQL 데이터베이스입니다. 데이터를 메인 메모리(DRAM) 에 저장해 초저지연·고성능을 구현하며, 평균 응답 속도는 1ms 미만입니다. 단순 캐시 서버를 넘어 다양한 데이터 구조를 지원하고, 영속성 옵션과 고가용성 기능을 통해 실시간 서비스의 핵심 구성 요소로 자리 잡았습니다.

Ⅱ.  Redis(Remote Dictionary Server) 아키텍처 구조


단일 스레드 명령 처리 : 모든 요청을 직렬 처리해 원자성(Atomicity) 보장
I/O 멀티플렉싱 : 하나의 스레드에서 수천 개의 네트워크 연결을 효율적으로 처리
데이터 저장 : 메모리에 저장, RDB/AOF를 통한 디스크 영속화 가능

Ⅲ. Redis(Remote Dictionary Server) 특징

 ⅰ. 인-메모리 기반
    1) 디스크 I/O 없이 DRAM에서 직접 데이터 접근
    2) 평균 응답 속도 1ms 미만, 초당 수십만 요청 처리 가능
ⅱ. 다양한 데이터 구조
    1) Strings : 최대 512MB 문자열
    2) Lists : 양방향 연결 리스트
    3) Sets : 중복 없는 집합
    4) Hashes : 필드-값 객체 구조
    5) Sorted Sets : 점수 기반 정렬 집합
    6) Streams : 실시간 데이터 스트림
    7) Bitmaps / HyperLogLog / Geospatial : 특수 데이터 처리
ⅲ. 영속성(Persistence) 지원
    1) RDB : 특정 시점 스냅샷 저장 (백업·빠른 복구)
    2) AOF : 모든 쓰기 명령 로그 기록 (높은 데이터 보존성)
ⅳ. 고가용성 및 확장성
    1) Replication : 마스터-슬레이브 복제
    2) Sentinel : 장애 감지 및 자동 Failover
    3) Cluster : 샤딩 기반 수평 확장

Ⅳ. Redis(Remote Dictionary Server) 동작 원리

ⅰ. 명령 처리
    1) 클라이언트 요청 수신
    2) 이벤트 큐에 명령 저장
    3) 단일 스레드 실행 엔진이 순차 처리
    4) 응답 전송
ⅱ. 이벤트 루프 & I/O 멀티플렉싱
    1) epoll(Linux), kqueue(BSD) 사용
    2) 하나의 스레드에서 다수의 연결 동시 처리
ⅲ. 영속화 처리
    1) RDB : bgsave 프로세스가 백그라운드에서 스냅샷 생성
    2) AOF : 쓰기 명령을 로그 파일에 순차 기록, fsync 주기 설정 가능
ⅳ. 메모리 관리
    1) maxmemory로 메모리 사용량 제한
    2) LRU/LFU 기반 Eviction 정책 적용

Ⅴ. Redis(Remote Dictionary Server) 장·단점

 ⅰ. 장점
    1) 초고속 성능(평균 1ms 미만)
    2) 다양한 데이터 구조 지원
    3) 간단한 명령어 기반 API
    4) 영속성·복제·클러스터로 고가용성 확보
 ⅱ.단점
    1) 메모리 의존 → 대규모 데이터 저장 시 비용 부담
    2) 싱글 스레드 구조 → CPU 바운드 작업에 취약
    3) 영속성 옵션 미설정 시 재시작 시 데이터 손실

Ⅵ. Redis(Remote Dictionary Server) 활용 사례

활용 분야  설명
캐싱 시스템 Cache Aside 패턴으로 DB 부하 감소, 자주 조회되는 데이터 메모리에 저장
세션 관리 JWT, 사용자 인증 세션 저장, 다중 서버 환경 공유
실시간 랭킹 Sorted Set을 활용한 순위표, 게임 리더보드
메시지 브로커 Pub/Sub로 실시간 채팅·알림 서비스
실시간 분석 Streams로 이벤트 데이터 실시간 처리



 

 
 

반응형