개요
- Redis
1. 동일한 서버에서 redis master / slave 구동
: master – 6379 / slave - 6380
포트를 다르게 주어 같은 서버 내에서 돌린다.
2. 동일한 서버에서 redis master server / slave server / sentinel 구동
: master - 6379, slave - 6380
sentinel 1 - 16379, sentinel 2 - 16380, sentinel 3 – 16381
3. 다른 서버에서 redis master server / slave server / sentinel 구동
: master – 192.168.4.41:6379, slave - 192.168.4.39:6379
sentinel 1 – 192.168.4.37:16379, sentinel 2 - 192.168.4.37:16379, sentinel 3 – 192.168.4.37:16379
1. 동일한 서버에서 redis master / slave 구동
: master – 6379 / slave - 6380
포트를 다르게 주어 같은 서버 내에서 돌린다.
이를 위한 config 파일 설정은 다음과 같다.
# vi /usr/local/redis/redis-master.conf
bind 127.0.0.1
port 6379
requirepass masterpw
daemonize yes
# vi /usr/local/redis/redis-slave.conf
bind 127.0.0.1
port 6380
replicaof 127.0.0.1 6379
requirepass masterpw
daemonize yes
순차적으로 redis server를 실행시킨다. master에서 set 변수 값 커맨드를 입력한 뒤 slave에서 get 변수 커맨드로 확인하여 정상적으로 데이터 복제가 이루어지는지 확인할 수 있다.
127.0.0.1:6379> set test test
OK
127.0.0.1:6379> get test
“test”
127.0.0.1:6380> get test
“test”
2. 동일한 서버에서 redis master server / slave server / sentinel 구동
: master - 6379, slave - 6380
sentinel 1 - 16379, sentinel 2 - 16380, sentinel 3 – 16381
slave server가 master server로 선출될 수 있기 때문에 모든 slave 는 requirepass 설정을 가져야 하고,
master 도 slave 가 될 수 있기 때문에 masterauth 설정을 해주어야 한다.
해당하는 내용을 master와 slave의 conf 파일에 추가해준다.
# vi /usr/local/redis/redis-master.conf
…
masterauth masterpw
requirepass masterpw
# vi /usr/local/redis/redis-slave.conf
…
masterauth masterpw
requirepass masterpw
이어서 sentinel.conf 파일 설정을 해준다. sentinel 별 파일을 각각 작성한다.
# vi /usr/local/redis/sentinel-6379.conf
port 16379
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster masterpw
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
# vi /usr/local/redis/sentinel-6380.conf
port 16380
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster masterpw
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
# vi /usr/local/redis/sentinel-6381.conf
port 16381
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster masterpw
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
master server가 down 됐을 때 slave 가 master 로 정상 변경되는지 확인한다.
# redis server 2개 시작
redis-server redis-master.conf
redis-server redis-slave.conf
# redis sentinel 3개 시작
redis-sentinel sentinel-6379.conf
redis-sentinel sentinel-6380.conf
redis-sentinel sentinel-6381.conf
- 동일한 서버에서 Redis sentinel failover test
→ swtich-master mymaster 127.0.0.1 6379 127.0.0.1 6380
이 부분을 보고 정상 작동한 것을 알 수 있다.
3. 다른 서버에서 redis master server / slave server / sentinel 구동
: master – 192.168.4.41:6379, slave - 192.168.4.39:6379
sentinel 1 – 192.168.4.37:16379, sentinel 2 - 192.168.4.37:16379,
sentinel 3 – 192.168.4.37:16379
# vi /usr/local/redis/redis-master.conf - 192.168.4.41
bind 192.168.4.41
port 6379
masterauth masterpw
requirepass masterpw
daemonize yes
# vi /usr/local/redis/redis-slave.conf - 192.168.4.39
bind 192.168.4.39
port 6379
replicaof 192.168.4.41 6379
masterauth masterpw
requirepass masterpw
daemonize yes
# vi /usr/local/redis/sentinel-6379.conf
port 16379
sentinel monitor mymaster 192.168.4.39 6379 2
sentinel auth-pass mymaster masterpw
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
# vi /usr/local/redis/sentinel-6380.conf
port 16380
sentinel monitor mymaster 192.168.4.39 6379 2
sentinel auth-pass mymaster masterpw
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
# vi /usr/local/redis/sentinel-6381.conf
port 16381
sentinel monitor mymaster 192.168.4.39 6379 2
sentinel auth-pass mymaster masterpw
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
- 다른 서버에서 Redis sentinel failover test
→ swtich-master mymaster 192.168.4.41 6379 192.168.4.39 6379
이 부분을 보고 정상 작동한 것을 알 수 있다.
'Dev > Linux' 카테고리의 다른 글
[Linux] Disk Mount (0) | 2022.08.05 |
---|---|
[Linux] Network Bonding (0) | 2022.08.04 |
[Linux] ip 설정 (0) | 2022.07.31 |
[Linux] DNS 설정 (0) | 2022.07.30 |
[Linux] Oracle JDK 설치 (0) | 2022.07.29 |
댓글