Redis Cluster 설정 방법에 대해서 알아보자

KUKJIN LEE • 2주 전 작성
Redis는 빠르고 효율적인 인메모리 데이터 저장소로 많이 사용되며, Redis Cluster를 설정하면 데이터의 분산 저장과 고가용성(High Availability)을 구현할 수 있습니다. Redis Cluster의 기본 개념과 설정 방법을 쉽게 이해할 수 있도록 설명드리겠습니다.
Redis Cluster란?
Redis Cluster는 여러 개의 Redis 노드를 묶어 데이터를 분산 저장하고 자동으로 장애를 감지 및 복구하는 기능을 제공하는 구조입니다.
Redis Cluster의 핵심 개념
✅ 샤딩(Sharding) – 데이터를 여러 개의 노드에 나누어 저장
✅ 고가용성(HA, High Availability) – 마스터-슬레이브 구조를 통해 장애 발생 시 자동 복구
✅ 노드(Node) – 클러스터를 구성하는 개별 Redis 인스턴스
✅ 슬롯(Slot) – Redis Cluster는 0~16383까지의 해시 슬롯(Hash Slot)을 사용하여 데이터를 자동 분배
Redis Cluster 환경 구성
Redis Cluster를 설정하려면 최소 6개의 Redis 노드(3개의 마스터 + 3개의 슬레이브)가 필요합니다.
아래와 같은 단계로 Redis Cluster를 구성할 수 있습니다.
1. Redis 설치
먼저 Redis를 설치해야 합니다. Ubuntu 기준으로 설치하는 방법을 예제로 설명하겠습니다.
sudo apt update
sudo apt install redis-server
또는, 직접 컴파일하여 설치할 수도 있습니다.
wget http://download.redis.io/redis-stable.tar.gz
tar xzvf redis-stable.tar.gz
cd redis-stable
make
sudo make install
2. Redis 설정 파일(redis.conf) 수정
각 노드의 redis.conf
파일에서 클러스터 모드를 활성화해야 합니다.
아래 설정을 적용합니다.
# 클러스터 활성화
cluster-enabled yes
# 클러스터 노드 정보 저장 파일
cluster-config-file nodes.conf
# 백그라운드 실행
daemonize yes
# 포트 설정 (각 노드마다 다른 포트 사용)
port 7000
📌 포인트
-
cluster-enabled yes
: Redis Cluster 기능 활성화 -
port
: 각 Redis 노드의 포트를 다르게 설정 (예: 7000, 7001, 7002 등)
Redis Cluster 구성 및 실행
이제 6개의 Redis 인스턴스를 실행하고 클러스터를 생성하는 단계입니다.
1) Redis 노드 실행
각 노드(7000~7005 포트)를 실행합니다.
redis-server /path/to/redis7000.conf
redis-server /path/to/redis7001.conf
redis-server /path/to/redis7002.conf
redis-server /path/to/redis7003.conf
redis-server /path/to/redis7004.conf
redis-server /path/to/redis7005.conf
2) Redis Cluster 생성
이제 Redis 클러스터를 생성합니다.
아래 명령어를 사용하여 3개의 마스터와 3개의 슬레이브로 구성된 클러스터를 생성할 수 있습니다.
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 \
127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
🚀 위 명령은 3개의 마스터(7000, 7001, 7002)와 3개의 슬레이브(7003, 7004, 7005)를 자동으로 설정합니다.
3) 클러스터 상태 확인
클러스터가 정상적으로 구성되었는지 확인하려면 다음 명령을 실행합니다.
redis-cli -c -p 7000 cluster info
또는 각 노드의 상세 상태를 확인하려면
redis-cli -c -p 7000 cluster nodes
Redis Cluster 테스트
클러스터가 정상적으로 동작하는지 간단한 명령어로 테스트해볼 수 있습니다.
redis-cli -c -p 7000 set key1 "Hello Redis Cluster!"
redis-cli -c -p 7001 get key1
📌 키가 자동으로 분산 저장되므로, 다른 노드에서도 데이터를 조회할 수 있습니다.