Master-slave Architecture
์ผ๋ฐ์ ์ผ๋ก master๋ read/write์ด๋ค. secondary๋ read๋ง ๊ฐ๋ฅํ๋ค.
secondary node๊ฐ ์ฃฝ์์๊ฒฝ์ฐ ๋์ ํ
์คํธ
cd redis/replica-multi-node
docker-compose up -d
# main
docker run -it --rm bitnami/redis:7.2 redis-cli -h host.docker.internal -p 6379
# secondary-1
docker run -it --rm bitnami/redis:7.2 redis-cli -h host.docker.internal -p 6380
# secondary-2
docker run -it --rm bitnami/redis:7.2 redis-cli -h host.docker.internal -p 6381

๋ชจ๋ ํด๋ฌ์คํฐ๊ฐ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค
์ด์ secondary-1์ ์ฃฝ์ด์
docker-compose stop redis-secondary-1

secondary-1์ด ์ฐ๊ฒฐ์ด ์๋๋ค.
๋ค์ ์ฌ๋ ค๋ณด์.
docker-compose start redis-secondary-1


๋ถํ ๋๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ๋ค ๊ฐ์ ธ์จ๊ฑธ ์์ ์๋ค.
secondary์ write๋ฅผ ํด๋ณด์.
write ๋ฅผ ํ ์ ์๋ค.

secondary๋ฅผ ๋ชจ๋ ์ฃฝ์ธํ ๋ค์ ์ด๋ฆฌ๋ฉด ์ด๋ป๊ฒ ๋ ๊ฐ?
๋ฉ์ธ์์ ๋ค ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์์ด ์ ๋๋ค.
main์ด ์ฃฝ์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊ฐ?
์ผ๋จ ๋ค์ ์ปค๋งจ๋๋ฅผ ์คํํด๋ณด์.
role

์ด์ main์ ์ฃฝ์ด์.
docker-compose stop redis-main
๋ค์ redis cli์์ ํ์ธํด๋ณด์.
role

main์ ์์ด์ง๊ณ secondary๋ ๊ณ์ slave์ด๋ค.
์ด์ secondary-1์ main์ผ๋ก ๋ง๋ค์.
# redis-cli
SLAVEOF NO ONE

์ด์ secondary-1์ด main์ด ๋์๋ค.
secondary-2๋ฅผ main์ ๋ถ์ฌ์ฃผ์.
# redis-cli
SLAVEOF redis-secondary-1 6379
๊ฒฐ๊ณผ๋ฅผ ๋ณด์.

์ด์ secondary-2๊ฐ secondary-1์ ๋ถ์๋ค.
์ด์ main์ ๋ค์ ์ด๋ ค๋ณด์. ๊ทธ๋ฆฌ๊ณ ์ค์ ์ ๋ฐ๊ฟ์ฃผ์.
docker-compose start redis-main
SLAVEOF redis-secondary-1 6379

์ด์ main์ด secondary-1์ ๋ถ์๋ค.
test๊ฐ์ ๊ฐ์ ธ์ค๋์ง ๋ณด์.

์ ๊ฐ์ ธ์จ๋ค. ๋ณต๊ตฌ ์ฑ๊ณต
Last updated
Was this helpful?