(Remind) MySQL 主從復制的方式
MySQL 資料庫支持的主從復制方式如下:
-
異步復制(Asynchronous replication)
MySQL 默認的復制即是異步的,主庫在執行完客戶端提交的事務后會立即將結果回傳給客戶端,并不關心從庫是否已經接受并處理,這樣就會有一個問題,主庫如果宕機,會導致資料丟失,
-
全同步復制(Fully synchronous replication)
指當主庫執行完一個事務,所有的從庫都執行了該事務才回傳給客戶端,因為需要等待所有從庫執行完該事物才能回傳,所以全同步復制的性能必然會收到嚴重的影響,
-
半同步復制(Semisynchronous replication)
介于異步復制和全同步之間,主庫在執行完客戶端提交的事務后不是立刻回傳給客戶端,而是等待至少一個從庫收到并寫到 relay log 中才回傳給客戶端,相對于異步復制,半同步復制提高了資料的安全性,

-
主從復制的優勢 - 讀寫分離
通過讀寫分離操作,可以實作服務器負載均衡,提升資料庫的并發訪問能力
- 讀寫分離在讀資料時存在一定的延時問題
- 讀寫分離非常適合查詢資料庫操作頻繁地系統
-
主從復制的優勢 - 異地備份
-
主從復制的優勢 - 故障容災
當主資料庫出現問題時,資料庫管理員可以立即讓從資料庫代替主資料庫,快速恢復系統服務
Redis 主從復制概念
- Redis 支持主從復制,而且支持一主多從以及多級從結構(與 MySQL 一樣)
- Redis 主從復制一是為了純粹的冗余備份,二是為了提升讀性能(讀寫分離)
- Redis 主從復制是異步進行的(主從同步不會影響主邏輯,也不會降低 Redis 的處理性能)
- 生產一邊關閉主服務器的持久化功能,只讓從服務器持久化(提高主服務器的處理性能)
- 生產一般從服務器被設定為只能模式(避免從服務器的資料被誤
Redis 主從復制流程圖

Redis 主從復制作用
-
資料冗余
主從復制實作了資料的熱備份(一種資料的冗余方式)
-
故障恢復
當節點出現問題,可以由從節點提供服務,實作快速的故障恢復(一種服務的冗余方式)
-
負載均衡
在主從復制的基礎上,配合讀寫分離,可以由主節點提供寫功能,由從節點提供讀功能,分擔服務器負載,尤其是在寫少讀多的場景下,通過多個從節點分擔讀負載,可以大大提高 Redis 服務器的并發量和處理性能
-
高可用基
主從復制還是哨兵和集群能夠實施的基礎(因此說主從復制是 Redis 高可用的基石)
Redis 哨兵模式
主從架構的弊端

哨兵模式

哨兵模式作業原理
- 哨兵模式通過間隔時間發送命令,讓 Redis 服務器回傳監控其運行狀態,包括主服務器和從服務器(心跳檢測)
- 當哨兵模式監測到 Master 主服務器宕機,會自動將 Slave 從服務器切換成 Master 主服務器,然后通過發布/訂閱模式通知其他的 Slave 從服務器修改組態檔,讓它們切換配置的 Master 主服務器 IP 地址和埠號(投票機制)
Redis 哨兵模式配置
Redis 集群架構
Redis 集群架構圖

Redis 集群投票機制

Redis 集群環境搭建
快取服務器集群
路由演算法
- 余數 Hash 路由演算法
- 一致性 Hash 路由演算法
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/212130.html
標籤:其他
上一篇:MySQL5.6解決‘’(1206)The total number of locks exceeds the lock table size‘’問題
下一篇:念力編程的宇宙
