redis主從複製和故障切換

redis主從複製和故障切換


1)當啓動一個Slave進程後,它會向Master發送一個SYNC Command,請求同步連接。

2)無論是第一次連接還是重新連接,Master都會啓動一個後臺進程,將數據快照保存到數據文件中,同時Master會記錄所有修改數據的命令並緩存在數據文件中。

3)後臺進程完成緩存操作後,Master就發送數據文件給Slave,Slave端將數據文件保存到硬盤上,然後將其在加載到內存中,接着Master就會所有修改數據的操作,將其發送給Slave端。

3)若Slave出現故障導致宕機,恢復正常後會自動重新連接,Master收到Slave的連接後,將其完整的數據文件發送給Slave

4)如果Mater同時收到多個Slave發來的同步請求,Master只會在後臺啓動一個進程保存數據文件,然後將其發送給所有的Slave,確保Slave正常。


server13的配置以及redis安裝不贅述了,有需要的話移步   基於redis緩存數據庫實現lnmp架構高速訪問


server11:


安裝redis

vim /etc/redis/6379.conf

 slaveof 172.25.8.13 6379            從redis配置
bind 127.0.0.1 172.25.88.11    綁定自己的IP,讓別人可以訪問

看看redis能否正常運行....

wKiom1jk51mTBmOjAABqXY82PyA579.png


server12:

安裝redis

配置redis的sentinel

cd /mnt/redis/redis-3.2.5
cp sentinel.conf /etc/redis/

vim sentinel.conf

 17 protected-mode no    一定要關閉保護模式,否則主從切換不成功,這個很容易忽略!
21 port 26379        管理端口
98 sentinel monitor mymaster 172.25.88.33 6379 2  #2個崗哨(選舉的時候會用到),配置master
106 sentinel down-after-milliseconds mymaster 5000
#master或slave多長時間不能使用後標記爲s_down狀態
131 sentinel failover-timeout mymaster 90000
#若sentinel(崗哨)在該時間值內未能完成failover操作(即故障時master/slave自動切換),則認爲本次failover失敗。


vim /etc/redis/6379.conf

 268 slaveof 172.25.88.13 6379            從redis配置
bind 127.0.0.1 172.25.88.12


scp sentinel.conf 172.25.88.13:/etc/redis/
scp sentinel.conf 172.25.88.11:/etc/redis/


server11,12,13

redis-server /etc/redis/sentinel.conf --sentinel    


wKioL1jk51rgaSrsAADl_WSFd94264.png



檢測


1.一主雙重是否成功


[kiosk@miaomiao ~]$ ssh [email protected]
[root@server12 ~]# redis-cli -p 26379
127.0.0.1:26379> info master0:name=mymaster,status=ok,address=172.25.88.13:6379,slaves=2,sentinels=3



2.主從切換( failover )

[root@server11 redis]# redis-cli -h 172.25.88.13 shutdown


serve13先主動down,自己發現服務異常,但主動down不切換,

之後被動down,開始選舉new master ,先確定兩個崗哨的狀態,之後爲下一任master投票,最後11當選下一任master



wKioL1jk51vRBad5AAEzejtxpBc153.png


server13已經下馬,servre11現在是master,同時每個配置中的主從配置,也在原來的地方文件也更改了...


wKiom1jk51zTI75OAABu26WzAeY753.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章