Redis高併發6-高併發之讀寫分離前言

內容大綱

一、圖解redis replication基本原理
二、redis replication的核心機制
三、master持久化對於主從架構的安全保障的意義node

redis replication -> 主從架構 -> 讀寫分離 -> 水平擴容支撐讀高併發redis

redis replication的最最基本的原理,鋪墊安全

------------------------------------------------------------------------架構

一、圖解redis replication基本原理

------------------------------------------------------------------------併發

二、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持久化對於主從架構的安全保障的意義

若是採用了主從架構,那麼建議必須開啓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數據清空故障  

相關文章
相關標籤/搜索