이전
redis-docker cluster 구성
redis.conf 파일 작성
port 7001
#cluster 사용 여부
cluster-enabled yes
#cluster 설정 파일 이름
cluster-config-file node.conf
#timeout 시간 지정 (ms)
cluster-node-timeout 5000
#failover된 redis node 재실행 시 이전 데이터를 다시 로드해올 수 있음
appendonly yes
port 7002
...
port 7003
...
port 7004
...
port 7005
...
port 7006
...
requirepass password
… 동일
첫번째 redis server는 각 redis들을 묶어줄 cluster의 master 개념이고 나머지 redis들은 저장소의 역할을 할 master-slave관계를 가질 redis들이다.
docker-compose.yml 작성
version: "3.7"
services:
node1:
container_name: node1
image: redis
volumes:
- ./conf1:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
ports:
- 7001:7001
- 7002:7002
- 7003:7003
- 7004:7004
- 7005:7005
node2:
network_mode: "service:node1"
container_name: node2
image: redis
volumes:
- ./conf2:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
node3:
network_mode: "service:node1"
container_name: node3
image: redis
volumes:
- ./conf3:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
node4:
network_mode: "service:node1"
container_name: node4
image: redis
volumes:
- ./conf4:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
node5:
network_mode: "service:node1"
container_name: node5
image: redis
volumes:
- ./conf5:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
redis-cluster-entry:
network_mode: "service:node1"
image: redis
container_name: redis-cluster
command: redis-cli --cluster create 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 --cluster-yes
depends_on:
- node1
- node2
- node3
- node4
- node5
실행
docker-compose up -d