728x90
🔁 Redis Replication(복제)
📌 개요
복제(replication) 는 Redis의 고가용성(HA)을 위한 핵심 기능 중 하나입니다.
- 백업만으로는 장애 대비에 한계 존재
→ 복제는 장애시 빠른 복구 및 서비스 연속성 확보에 유리 - Master-Replica 구조로 구성
- Replica는 일반적으로 읽기 전용이며, 트래픽 분산 역할도 수행 가능
✅ 복제 구성 이점
- 마스터 장애 발생 시 → Replica를 Master로 승격
- Replica 노드에서 읽기 수행 → 트래픽 분산
- Master 노드 백업 기능(RDB, AOF)과 병행 사용 가능
⚙ 기본 복제 설정 (redis.conf
)
# Replica로 설정
replicaof 127.0.0.1 6379
# Replica는 기본적으로 read-only
replica-read-only yes
⚠ Master Redis는 RDB나 AOF 백업 기능을 활성화해야 함
(재시작 후 비어있는 Master 상태로 인해 기존 Replica 데이터 손실 위험 방지)
🐳 Docker로 Master/Replica 구성 예시
1. Master Redis 실행
docker run --name my-redis-master -p 5000:6379 redis
2. Replica 설정파일 작성 (redis.conf
)
# Replica 설정 추가
replicaof 127.0.0.1 5000
3. Replica Redis 실행
docker run --network host \
-v $(pwd)/redis.conf:/redis.conf \
--name my-redis-replica redis redis-server /redis.conf
🛠 Docker Compose로 복제 구성
📄 docker-compose.yml
version: "3"
services:
my-redis-a:
hostname: redis-master
container_name: redis-master
image: "bitnami/redis"
environment:
- REDIS_REPLICATION_MODE=master
- ALLOW_EMPTY_PASSWORD=yes
ports:
- 6379:6379
my-redis-b:
hostname: redis-replicas-1
container_name: redis-replicas-1
image: "bitnami/redis"
environment:
- REDIS_REPLICATION_MODE=slave
- REDIS_MASTER_HOST=redis-master
- ALLOW_EMPTY_PASSWORD=yes
ports:
- 5000:6379
depends_on:
- my-redis-a
🧪 실행 명령
# docker-compose.yml 파일이 위치한 경로에서 실행
docker-compose up --build
🧩 Redis CLI 접속 예시
docker exec -it redis-master /bin/sh
🖼 복제 구성 구조
아래는 Docker Compose를 활용한 Redis Master-Slave 구성 예시입니다.
728x90
'DB' 카테고리의 다른 글
[Redis] Redis Cluster (0) | 2024.03.12 |
---|---|
[Redis] Redis Sentinel (0) | 2024.03.10 |
[Redis] 백업과 장애 복구 (AOF 방식) (0) | 2024.03.10 |
[Redis] 백업과 장애 복구 (RDB 방식) (0) | 2024.03.07 |
[Redis] Pub/Sub을 이용한 채팅방 구현 (0) | 2024.03.01 |