主從複製工作流程從伺服器連線主伺服器,傳送sync命令。主伺服器接收到sync命令後,開始執行bgs**e命令生成rdb檔案並使用緩衝區記錄此後執行的所有命令
主伺服器bgs**e執行完成後,向所有伺服器傳送快照檔案,並在傳送期間繼續記錄被執行的寫命令
從伺服器接收到快照資料後丟棄所的有舊資料,載入收到以的快照
主伺服器快照傳送完畢後開始向從伺服器傳送緩衝區中的寫命令
從伺服器完成對快照的載入,開始接收命令請求,並執行來自主伺服器緩衝區的寫命令(從伺服器初始化完成)
主伺服器每執行乙個寫命令就會向從伺服器傳送相同的寫命令,從伺服器接收並執行收到的寫命令(從伺服器初始化完成後的操作)
主從複製優缺點:
優點:
支援主從複製,主機會自動將資料同步到從機,可以進行讀寫分離
為了負載master的讀操作壓力,sl**e伺服器可以為客戶端提供唯讀操作的服務,寫服務仍然必須由master來完成
sl**e 同樣可以接受其它sl**e的連線和同步請求,這樣可以有效的分載master 的同步壓力
master是以非阻塞的方式為sl**e提供服務,所以master-sl**e同步期間,客戶端仍然可以提交查詢和修改請求。
sl**e server同樣是以非阻塞的方式未完成資料同步,在同步期間,如果有客服端提交查詢請求,redis則返回同步之前的資料。
缺點:
redis 不具備自動容錯和恢復功能,主機和從機的宕機都會導致客戶端部分讀寫請求的失敗,需要等待機器重啟或手動切換前端的ip才能恢復
主機宕機,宕機前有部分資料未能同步到從機,切換ip後還會引起資料不一致的問題降低了系統的可用性。
一主二僕 a(b、c) 乙個master兩個sl**e參照:薪火相傳(去中心化)a - b - c ,b既是主節點(c的主節點),又是從節點(a的從節點)
反客為主(主節點down掉後,手動操作公升級從節點為主節點)
1、節點redis不需要修改配置
主節點伺服器ip:192.168.244.128
2、改從節點配置
新增配置:sl**eof 192.168.244.128 6379
從節點ip:192.168.244.130 192.168.244.131
3、分別重啟主從伺服器,驗證
主伺服器info replication:
顯示有兩個從節點,主節點set值 ,從節點可以get 得到
從伺服器info replication:
如上配置: 192.168.244.130 新增配置: sl**eof 192.168.244.128 6379
192.168.244.131 新增配置: sl**eof 192.168.244.130 6379
此時從節點還是唯讀的
公升為主節點後可讀可寫。
Redis集群 主從複製
從伺服器向主伺服器傳送sync 同步 請求。主伺服器收到這個請求之後,這個時候就不是單執行緒啦 開始生成rdb 快照檔案 並且使用緩衝區記錄之後所有的寫操作命令。快照檔案生成完畢之後,主伺服器,向從伺服器傳送快照檔案,這期間也繼續記錄執行過的寫命令。從伺服器接收快照檔案完畢之後,丟棄舊資料,載入快照...
Redis集群(主從複製)
主從複製 主從複製原理 redis集群中有很多redis伺服器,這些reids伺服器分為主伺服器和從伺服器。從伺服器會向主伺服器傳送命令 sync命令。主伺服器接收到sync命令後,開始執行gbs e命令生成rdb檔案 快照檔案 並使用緩衝區來記錄此後的寫命令 主伺服器gbs e命令執行完畢後,會將...
Redis 主從複製
主從複製的開啟,完全是在從節點發起的,不需要我們在主節點做任何事情,從節點開啟主從複製,有3種方式 主從複製主要可分為 連線建立階段 即準備階段 資料同步階段 命令傳播階段 主要作用是在主從節點之間建立連線,為資料同步做好準備 從節點資料的初始化,具體執行的方式是 從節點向主節點傳送psync命令 ...