[Redis] Replication

[์›๋ณธ ๋งํฌ]

single master - multi slave ๊ตฌ์กฐ๋กœ ๋ณต์ œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ๋‹ค๋ฃฌ๋‹ค.

์ฐธ์กฐ
https://blog.naver.com/sssang97/223485062023




Redis ์„œ๋ฒ„ ๊ตฌ์„ฑ (Docket)

๋จผ์ € docker๋ฅผ ํ†ตํ•ด์„œ ๋ ˆ๋””์Šค ์„œ๋ฒ„๋ฅผ N๊ฐœ ๋„์›Œ๋ณด์ž.

sudo docker network create redis-network

sudo docker run --name master -d --network redis-network -p 44444:6379 redis
sudo docker run --name slave-1 -d --network redis-network -p 44443:6379 redis
sudo docker run --name slave-2 -d --network redis-network -p 44442:6379 redis

ํ•˜๋‚˜๋Š” ๋งˆ์Šคํ„ฐ๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ slave ๋…ธ๋“œ๋‹ค.


์ด๋ ‡๊ฒŒ ๋œจ๋ฉด ์ž˜ ๋œฌ ๊ฒƒ์ด๊ณ 


๊ฝ‚์•„์„œ ์ ‘์†ํ–ˆ์„๋•Œ ์ž˜ ๋˜๋ฉด ๋œ ๊ฒƒ์ด๋‹ค.


๊ทธ๋ฆฌ๊ณ , slave๋“ค์—์„œ master ์ ‘์†์ด ๋˜๋Š”์ง€๋„ ํ™•์ธํ•ด๋ณธ๋‹ค.
๊ฐ™์€ docker network๋กœ ๋ฌถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— "master" ํ˜ธ์ŠคํŠธ๋กœ ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค.




Replication ์ •๋ณด ์กฐํšŒ

info replication์„ ์‚ฌ์šฉํ•˜๋ฉด replication ๊ด€๋ จ๋œ ์ƒํƒœ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

master


slave1


slave2




Replication ๊ตฌ์„ฑ

replication ๊ตฌ์„ฑ์€ ์˜์™ธ๋กœ ๊ฐ„๋‹จํ•˜๋‹ค.
slave ๋…ธ๋“œ๋“ค์— ๋“ค์–ด๊ฐ€์„œ, replicaof ๋ช…๋ น์„ ์น˜๋ฉด ๋œ๋‹ค.

replicaof master 6379

๊ทธ๋Ÿผ ์ € ๋…ธ์˜ˆ๋“ค์ด master ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋œ๋‹ค.


ํ•˜๋‚˜์”ฉ ๋“ฑ๋กํ•˜๊ณ  ์ข€ ๊ธฐ๋‹ค๋ฆฌ๋ฉด

์ •๋ณด๊ฐ€ ๋ฐ”๋€” ๊ฒƒ์ด๋‹ค.

master๋Š” connected_slave๊ฐ€ 2๊ฐœ๊ฐ€ ๋œจ๊ณ 


slave๋“ค์€ master๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค.

๊ทธ๋Ÿผ ์ด์ œ

master์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฐ์œผ๋ฉด


๋ฐ”๋กœ๋ฐ”๋กœ slave์— ๋ณต์ œ๋  ๊ฒƒ์ด๋‹ค.


๋‹จ, slave ๋…ธ๋“œ๋“ค์—์„œ๋Š” ์“ฐ๊ธฐ ์ž‘์—…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด์„œ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ๋งŒ ๋™์ž‘ํ•œ๋‹ค.

์ด ์ •๋„๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” Replication ๊ตฌ์„ฑ์ด๋‹ค.

์ž๋™ ์žฅ์•  ๋ณต๊ตฌ๋‚˜ ๊ทœ๋ชจ ํ™•์žฅ์„ฑ์„ ๋Š˜๋ ค์•ผ ํ•œ๋‹ค๋ฉด Sentinel์ด๋‚˜ Clustering์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๊ณ , ์‹ ๊ฒฝ์จ์•ผํ• ๊ฒŒ ๊ณฑ์ ˆ๋กœ ๋งŽ์•„์ง„๋‹ค.



์ฐธ์กฐ
https://redis.io/docs/latest/operate/oss_and_stack/management/replication/