redis的主從複製

2020-12-17 李國器

單機有什麼問題

機器故障 數據如何同步的問題(高可用)容量瓶頸QPS瓶頸 (分布式)什麼是主從複製一主一從 一主多從作用數據副本拓展讀性能總結

一個master可以有多個slave一個slave只能有一個master數據流向是單向的,master到slave複製的配置兩種實現方式slaveof 命令redis-6380>slaveof 127.0.0.1 6379 okredis-6380>slaveof no one #斷掉之前的連接配置slaveof ip portslave-read-only yes| 方式 | 命令 | 配置 || —— | —— | —— || 優點 | 無需重啟 | 統一配置 || 缺點 | 不便於管理 | 需要重啟 |全量複製和部分複製

runid 和 複製偏移量redis-cli -p 6379 info replication

全量複製

全量複製開銷bgsave 時間rdb文件網絡傳輸時間從節點清空時間從節點加載rdb的時間可能的aof重寫時間部分複製

故障處理

自動故障轉移slave宕掉master宕掉讓slave成為master,另一臺slave slaveof 新的master開發運維常見問題

讀寫分離

可能的問題

複製數據延遲讀到過期數據從節點故障主從配置不一致例如maxmemory不一致:丟失數據例如數據結構優化參數(例如hash-max-ziplist-entries):內存不一致規避全量複製第一次不可避免小主節點,低峰節點運行id不匹配主節點重啟(運行id變化)故障轉移,例如哨兵和集群複製積壓緩衝區不足網絡中斷,部分複製無法滿足增大複製緩衝區配置rel_backlog_size規避複製風暴單主節點複製風暴問題:主節點重啟,多從節點複製解決:更換複製拓撲

單機器複製風暴如右圖:機器宕機後,大量全量複製主節點分散多機器

相關焦點

  • Redis的主從複製機制
    Redis的主從複製是面試中經常會被問的,我最近面試的幾家公司只要聊到Redis,都會問我主從複製的原理。1.為什麼需要主從複製?主從複製實踐首先,我在本機開啟2個Redis實例(也可以搞2臺Redis伺服器),分別為127.0.0.1:6379、127.0.0.1:6380。
  • 面試官:Redis 主從複製時網絡開小差了怎麼整?
    今天主要講的是主從複製數據一致性相關以及面對網絡中斷如何進行數據同步的問題。不 BB 了,直接上鍾吧!- 思維導圖 -主從模式配置對於 Redis 主從大家可能並不陌生,但是配置的話日常工作中並不會經常操作。在這裡簡單介紹下主從的相關配置。
  • redis集群架構的演進之路
    一、redis的主從架構一開始我們的業務量不大時,一個redis節點就能滿足我們的業務需求,當我們的業務量不斷上漲,單臺redis節點已經不能滿足我們的業務需求時,這個時候redis的主從結構就出現了。
  • 搭建MySQL主從集群,主從複製過程中同步延遲問題
    上一節我們成功搭建了主從複製、讀寫分離,實際上並發量和數據量不大的情況下,使用起來也是非常的流暢,無任何問題,可以正常運行了。二、複製過程1)、Mysql的主從同步就是當master(主庫)發生數據變化的時候,會實時同步到slave(從庫)。2)、主從複製可以水平擴展資料庫的負載能力,容錯,高可用,數據備份。
  • 看完這篇別再說你不懂單機redis了
    redis之所以分這麼多個資料庫,也是為了區分業務,不同的業務存放在不同的庫,但是一個redis,一般是給一個項目用,項目內的不同業務,單獨用一個庫,這樣不會相互有數據交叉。現在很多微服務項目,一個項目裡有多個微服務,redis統一由團隊管理,每個服務連接自己的庫就可以了。
  • redis持久化和選擇
    持久化的作用什麼是持久化redis所有的數據保存在內存中,對數據的更新將異步地保存在硬碟中。地持久化地取捨和選擇RDB什麼是RDBredis在硬碟上創建一個二進位的rdb文件,redis啟動時會把這個rdb文件載入到內存中觸發機制- 主要三種方式save 同步save命令有一個問題,它是一個同步命令,如果數據很多的話
  • MySQL主從複製原理
    本文介紹MySQL主從複製原理。主從複製原理主從複製中涉及的文件主庫:binlog從庫:relaylog (中繼日誌)、master.info(主庫信息文件)、relaylog.info(relaylog應用信息)
  • 聊聊MySQL主從複製的幾種複製方式
    異步複製MySQL的複製默認是異步的,主從複製至少需要兩個MYSQL服務,這些MySQL服務可以分布在不同的伺服器上,也可以在同一臺伺服器上。MySQL主從異步複製是最常見的複製場景。以上是傳統的異步複製,在MySQL5.7的並行複製技術(也稱多線程複製)到來之前,為人詬病最多的還是效率問題,slave延遲是一個頑疾,雖然之前已經出現了schema級別的並行複製,但實際效果並不好。
  • MySQL資料庫主從複製搭建
    本文介紹MySQL資料庫主從複製搭建。文末有主從複製步驟導圖資料庫批量初始化更多詳細操作,請參考之前的多實例的文章內容為保證數據的純淨,將資料庫中所有數據刪除,並重新初始化rm -rf /data/*因為將server_id為6的實例設置為主庫主庫創建複製用戶 mysql -uroot -proot -e "grant replication slave on *.* to repl@'%' identified by 'repl'"; mysql -uroot -proot -
  • 搞懂這些Redis知識點,吊打面試官!
    主從複製面試官:Redis 單節點存在單點故障問題,為了解決單點問題,一般都需要對 Redis 配置從節點,然後使用哨兵來監聽主節點的存活狀態,如果主節點掛掉,從節點能繼續提供緩存功能,你能說說 Redis 主從複製的過程和原理嗎?
  • MySQL主從複製高級進階
    本文介紹MySQL主從複製高級進階。延時從庫介紹及配置SQL線程延時:數據已經寫入relaylog中了,SQL線程稍後執行。一般企業建議3-6小時,具體看公司運維人員對於故障的反應時間執行之前在需要先stop slave,否則會報錯,無法執行;stop slave;設置master_delay並重新開啟複製start slave後,,MySQL從庫會清空原有的relay log
  • Docker搭建MySQL主從複製(一主一從)
    二、配置Master和Slave這裡假設主從伺服器的IP如下1、配置Master因為是通過Docker部署的MYSQL,所以要進入Docker內部修改MYSQL配置文件3、開啟Master-Slave主從複製上面兩步Master和Slave都配置成功了,而且Master也為Slave讀取Master數據專門設置了一個帳號,下面就來實現同步。
  • 一直搞不清楚什麼是讀寫分離,主從複製的原理,今天總算搞懂了
    說說MySQL主從複製原理?如何解決 MySQL主從同步延時問題?1、MySQL的讀寫分離說到讀寫分離,我們先了解下什麼是主從複製。讀寫分離簡單倆說就是基於主從複製架構,一個主庫,有多個從庫,主庫主要負責寫,寫完後主庫會自動把數據給同步給從庫。
  • 輕鬆搭建MySQL主從複製、讀寫分離(雙機熱備)
    主從複製:當mysql資料庫的數據量太大的時候,查詢數據就很吃力了,無論怎麼優化都會產生瓶頸,這時我們需要增加伺服器設備來實現分布式資料庫,實現多機熱備份,要想實現多機的熱備,首先要了解主從資料庫伺服器的版本的需求,主從mysql的安裝運行版本需一致。
  • 聊聊python 數據處理全家桶(Redis篇)
    Mysql、Sqlite 資料庫常用方式,本篇文章繼續說另外一種比較常用的數據存儲方式:RedisRedis:Remote Dictionary Server,即:遠程字典服務,Redis 底層使用 C 語言編寫,是一款開源的、基於內存的 NoSql 資料庫由於 Redis 性能遠超其他資料庫,並且支持集群、分布式及主從同步等優勢
  • Redis-Window Server快速搭建Redis Cluster集群
    /releases選擇redis 3.0+版本配置redis在redis安裝目錄中找到redis.windows.conf,修改配置文件中配置,修改選項如下:cluster-enabled yescluster-node-timeout
  • MySQL的主從備份
    高峰時資料庫連接數經常超過上限如何解決單點問題增加額外的資料庫伺服器,組建資料庫集群同一集群中的資料庫伺服器需要具有相同的數據集群中的任一伺服器宕機後,其他伺服器可以取代宕機伺服器MySQL主從複製架構
  • 跬步千裡——阿里雲Redis bitfield命令加速記
    1.1 讀寫分離原理Redis讀寫分離實例的原理是:key統一寫入到master,然後通過主從複製同步到slave,用戶的請求通過proxy做判斷,如果是寫請求,轉發到master;如果是讀請求,分散轉發到slave,這種架構適合讀請求數量遠大於寫請求數量的業務,讀寫分離架構示意圖如下所示。
  • 高性能Mysql主從架構的複製原理及配置詳解
    請注意當你進行複製時,所有對複製中的表的更新必須在主伺服器上進行。否則,你必須要小心,以避免用戶對主伺服器上的表進行的更新與對從伺服器上的表所進行的更新之間的衝突。mysql支持的複製類型:基於語句的複製:在主伺服器上執行的SQL語句,在從伺服器上執行同樣的語句。MySQL默認採用基於語句的複製,效率比較高。