一、圖解redis replication基本原理
二、redis replication的核心機制
三、master持久化對於主從架構的安全保障的意義node
redis replication -> 主從架構 -> 讀寫分離 -> 水平擴容支撐讀高併發redis
redis replication的最最基本的原理,鋪墊安全
------------------------------------------------------------------------架構
------------------------------------------------------------------------併發
(1)redis採用異步方式複製數據到slave節點,不過redis 2.8開始,slave node會週期性地確認本身每次複製的數據量
(2)一個master node是能夠配置多個slave node的
(3)slave node也能夠鏈接其餘的slave node
(4)slave node作複製的時候,是不會block master node的正常工做的
(5)slave node在作複製的時候,也不會block對本身的查詢操做,它會用舊的數據集來提供服務; 可是複製完成的時候,須要刪除舊數據集,加載新數據集,這個時候就會暫停對外服務了
(6)slave node主要用來進行橫向擴容,作讀寫分離,擴容的slave node能夠提升讀的吞吐量異步
slave,高可用性,有很大的關係高併發
------------------------------------------------------------------------spa
若是採用了主從架構,那麼建議必須開啓master node的持久化!內存
不建議用slave node做爲master node的數據熱備,由於那樣的話,若是你關掉master的持久化,可能在master宕機重啓的時候數據是空的,而後可能一通過複製,salve node數據也丟了同步
master -> RDB和AOF都關閉了 -> 所有在內存中
master宕機,重啓,是沒有本地數據能夠恢復的,而後就會直接認爲本身的數據是空的
master就會將空的數據集同步到slave上去,全部slave的數據所有清空
100%的數據丟失
master節點,必需要使用持久化機制
第二個,master的各類備份方案,要不要作,萬一說本地的全部文件丟失了; 從備份中挑選一份rdb去恢復master; 這樣才能確保master啓動的時候,是有數據的
即便採用了後續講解的高可用機制,slave node能夠自動接管master node,可是也可能sentinal尚未檢測到master failure,master node就自動重啓了,仍是可能致使上面的全部slave node數據清空故障