๐์ด๋ฒ์๋ ๋์ปค ์ปดํฌ์ฆ๋ฅผ ํ์ฉํ์ฌ master-slave ๊ตฌ์กฐ์ redis๋ฅผ ๋์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋์ ๊ฐ์ด ymlํ์ผ์ ๋จผ์ ์์ฑํด ์ค๋๋ค.
version: "3.7"
services:
redis-master:
image: redis
hostname: redis-master
container_name: redis-master
environment:
- REDIS_REPLICATION_MODE=master
volumes:
- ./data:/data
- ./conf/master:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
ports:
- "6380:6379"
slave1:
image: redis
ports:
- "6381:6379"
volumes:
- ./conf/slave:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
depends_on:
- redis-master
slave2:
image: redis
ports:
- "6382:6379"
volumes:
- ./conf/slave:/usr/local/etc/redis/
command: redis-server /usr/local/etc/redis/redis.conf
depends_on:
- redis-master
๐ญ์ฌ๊ธฐ์ conf ํ์ผ์ ์์ฑํด์ฃผ๋ฉด ๋๋๋ฐ
bitnami/redis
์ ๊ฒฝ์ฐ ํ๊ฒฝ๋ณ์๋ก ์ง์ด ๋ฃ์ด์ค ์ ์๋๋ฐ ์ ์ปดํจํฐ ๋ฌธ์ ์ธ์ง ๊ทธ๋ฅ redis๋ฅผ ์ด์ฉํ๋ฉด ์ ์๋๊ธฐ์ ์ฌ๊ธฐ์๋ conf ํ์ผ์ ๋ง์ดํธ ํด์ค์ ์ค์ ์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ซ master confํ์ผ์ ์๋์ ๊ฐ์ด ์ ์ด์ค๋๋ค.
requirepass 1111
์ฌ์ค ์๋ฌด๊ฒ๋ ์ ์ง ์์๋ ๋์ง๋ง ์ฌ๊ธฐ์๋ password๋ฅผ ๊ฑธ์ด ์ฃผ์์ต๋๋ค.
replicaof redis-master 6379
masterauth 1111
replicaof < master ip> port
๋ฅผ ์ ์ด์ฃผ์๋ฉด ํด๋น slave๊ฐ master์์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋๋ฐ ์ด๋ ์ ํฌ๊ฐ password๋ฅผ ๊ฑธ์ด ์ฃผ์๊ธฐ์ masterauth์ ํด๋น ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฃ์ด์ฃผ๋ฉฐ ๋ฉ๋๋ค.
์ด์
docker-compose up -d
๋ก ๋์ฐ๊ณ ๋์ ํ์ธํด๋ด ๋๋ค.master redis์ ๋ค์ด๊ฐ์
role
์ด๋ผ๋ ๋จ์ด๋ฅผ ์ณ์ฃผ์๋ฉด ํด๋น ์ ๋ณด๋ค์ด ๋์ค๊ฒ ๋ฉ๋๋ค.๐๋ง์ฝ ์ง์ ํ์ธํด๋ณด๊ณ ์ถ๋ค๋ฉด master์์ ๊ฐ์ ํ๋ ์ง์ด ๋ฃ์ด์ฃผ๊ณ slave์์ ํด๋น ๊ฐ์ ํ์ธํด๋ณด์๋ฉด ๋ฉ๋๋ค.