1)當啓動一個Slave進程後,它會向Master發送一個SYNC Command,請求同步鏈接。ios
2)不管是第一次鏈接仍是從新鏈接,Master都會啓動一個後臺進程,將數據快照保存到數據文件中,同時Master會記錄全部修改數據的命令並緩存在數據文件中。redis
3)後臺進程完成緩存操做後,Master就發送數據文件給Slave,Slave端將數據文件保存到硬盤上,而後將其在加載到內存中,接着Master就會全部修改數據的操做,將其發送給Slave端。數據庫
3)若Slave出現故障致使宕機,恢復正常後會自動從新鏈接,Master收到Slave的鏈接後,將其完整的數據文件發送給Slavevim
4)若是Mater同時收到多個Slave發來的同步請求,Master只會在後臺啓動一個進程保存數據文件,而後將其發送給全部的Slave,確保Slave正常。緩存
安裝redis架構
vim /etc/redis/6379.confapp
slaveof 172.25.8.13 6379 從redis配置
bind 127.0.0.1 172.25.88.11 綁定本身的IP,讓別人能夠訪問
看看redis可否正常運行....ssh
cd /mnt/redis/redis-3.2.5
cp sentinel.conf /etc/redis/ide
vim sentinel.confspa
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/
redis-server /etc/redis/sentinel.conf --sentinel
[kiosk@miaomiao ~]$ ssh root@172.25.88.12
[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
[root@server11 redis]# redis-cli -h 172.25.88.13 shutdown
serve13先主動down,本身發現服務異常,但主動down不切換,
以後被動down,開始選舉new master ,先肯定兩個崗哨的狀態,以後爲下一任master投票,最後11當選下一任master
server13已經下馬,servre11如今是master,同時每一個配置中的主從配置,也在原來的地方文件也更改了...