redis master-slave 切换演练
IP地址
端口
属性
192.168.31.208
6379
master
192.168.31.208
6378
slave
192.168.31.209
6379
master
192.168.31.209
6378
slave
192.168.31.210
6379
master
192.168.31.210
6378
slave
环境变量
PATH=$PATH:$HOME/cpprelease/redis-3.0.2/src/:$HOME/bin
BASE_PATH=/home/beidou_soa/cpprelease/
export PATH
alias redisstart1='cd ~/redis/ && redis-server $BASE_PATH/cfg/redis/redis1.conf && cd -'
alias redisstart2='cd ~/redis/ && redis-server $BASE_PATH/cfg/redis/redis2.conf && cd -'
alias redisstop1='cd ~/redis/ && redis-cli -p 6379 shutdown && cd -'
alias redisstop2='cd ~/redis/ && redis-cli -p 6378 shutdown && cd -'
1.检查环境
[ beidou_soa@localhost ~]$redis-trib.rbcheck192.168.31.208:6379Connectingtonode192.168.31.208:6379:OK
Connectingtonode192.168.31.210:6378:OK
Connectingtonode192.168.31.209:6378:OK
Connectingtonode192.168.31.210:6379:OK
Connectingtonode192.168.31.209:6379:OK
Connectingtonode192.168.31.208:6378:OK
>>>PerformingClusterCheck(usingnode192.168.31.208:6379)
M:273aa3c0416e7d1795ce678d56bd2db148613f7e192.168.31.208:6379
slots:10923-16383(5461slots) master
1additionalreplica(s)
S:08f61dcd66389dae5c39e375d4f52e1defa77ec1192.168.31.210:6378
slots:(0slots) slave
replicates40cecda23f32cb3b8ff60752c00514f2d7d9c3d0
S:d8e8369bfdbf4f9e0bebd04911181785e3ee1129192.168.31.209:6378
slots:(0slots) slave
replicates4f11d4265178d72e0ccf7edf0ddabf835e9c56df
M:40cecda23f32cb3b8ff60752c00514f2d7d9c3d0192.168.31.210:6379
slots:0-5460(5461slots) master
1additionalreplica(s)
M:4f11d4265178d72e0ccf7edf0ddabf835e9c56df192.168.31.209:6379
slots:5461-10922(5462slots) master
1additionalreplica(s)
S:4b6e2b13b1be1a081db2153dc4beaf430b489605192.168.31.208:6378
slots:(0slots) slave
replicates273aa3c0416e7d1795ce678d56bd2db148613f7e
[OK]Allnodesagreeaboutslotsconfiguration.>>>Checkforopenslots...
>>>Checkslotscoverage...
[OK]All16384slotscovered. [ beidou_soa@localhost ~]$redis-cli-c-p6379127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>gettestkey001
(nil)
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>settestkey002testvalue002
->Redirectedtoslot[401]locatedat192.168.31.210:6379OK
192.168.31.210:6379>
192.168.31.210:6379>gettestkey002
"testvalue002"
192.168.31.210:6379>settestkey003testvalue003
OK
2.准备关闭208的master
[ beidou_soa@localhost ~]$redisstop13.检查集群状态
查看slave的日志
[ beidou_soa@localhost redis]$vimredis-6378.log6874:S30Dec15:28:04.755#ErrorconditiononsocketforSYNC:Connectionrefused
6874:S30Dec15:28:05.758*ConnectingtoMASTER192.168.31.208:6379
6874:S30Dec15:28:05.758*MASTER<->SLAVEsyncstarted
6874:S30Dec15:28:05.759#ErrorconditiononsocketforSYNC:Connectionrefused
6874:S30Dec15:28:06.647*FAILmessagereceivedfrom40cecda23f32cb3b8ff60752c00514f2d7d9c3d0about273aa3c0416e7d1795ce678d56bd2db148613f7e
6874:S30Dec15:28:06.647#Clusterstatechanged:fail
6874:S30Dec15:28:06.662#Startofelectiondelayedfor842milliseconds(rank#0,offset105547).
6874:S30Dec15:28:06.762*ConnectingtoMASTER192.168.31.208:6379
6874:S30Dec15:28:06.762*MASTER<->SLAVEsyncstarted
6874:S30Dec15:28:06.763#ErrorconditiononsocketforSYNC:Connectionrefused
6874:S30Dec15:28:07.565#S tartingafailoverelectionforepoch4.
6874:S30Dec15:28:07.567# Failoverelectionwon:I'mthenewmaster.
6874:S30Dec15:28:07.567#configEpochsetto4aftersuccessfulfailover
6874:M30Dec15:28:07.567*Discardingpreviouslycachedmasterstate.
6874:M30Dec15:28:07.567#Clusterstatechanged:ok
查看集群状态
[ beidou_soa@localhost ~]$redis-trib.rbcheck192.168.31.208:6378Connectingtonode192.168.31.208:6378:OK
Connectingtonode192.168.31.209:6378:OK
Connectingtonode192.168.31.209:6379:OK
Connectingtonode192.168.31.210:6378:OK
Connectingtonode192.168.31.210:6379:OK
>>>PerformingClusterCheck(usingnode192.168.31.208:6378)
M:4b6e2b13b1be1a081db2153dc4beaf430b489605192.168.31.208:6378
slots:10923-16383(5461slots) master
0additionalreplica(s)
S:d8e8369bfdbf4f9e0bebd04911181785e3ee1129192.168.31.209:6378
slots:(0slots) slave
replicates4f11d4265178d72e0ccf7edf0ddabf835e9c56df
M:4f11d4265178d72e0ccf7edf0ddabf835e9c56df192.168.31.209:6379
slots:5461-10922(5462slots) master
1additionalreplica(s)
S:08f61dcd66389dae5c39e375d4f52e1defa77ec1192.168.31.210:6378
slots:(0slots) slave
replicates40cecda23f32cb3b8ff60752c00514f2d7d9c3d0
M:40cecda23f32cb3b8ff60752c00514f2d7d9c3d0192.168.31.210:6379
slots:0-5460(5461slots) master
1additionalreplica(s)
[OK]Allnodesagreeaboutslotsconfiguration.>>>Checkforopenslots...
>>>Checkslotscoverage...
[OK]All16384slotscovered.4.关闭slave
[ beidou_soa@localhost ~]$redisstop15.检查集群状态
[ beidou_soa@localhost ~]$redis-trib.rbcheck192.168.31.209:637