精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

救命!只有我還不明白Redis主從復制的原理嗎?

數據庫 Redis
為了保證同步的效率,除了第一次需要?全量同步?以外,例如當主從節點斷連后,則只需要?增量同步?,這是由主從庫的復制偏移量以及主庫的 ?repl_backlog_buffer? 復制積壓緩沖區來控制的。?

1. 引言

之前我們聊過 Redis 的數據結構底層原理和持久化機制,這期我們來聊 Redis 的高可用主題。

時光穿梭機:

  • Redis持久化都說不明白?那今天先到這吧~
  • Redis數據結構的底層原理

眾所周知,一個數據庫系統想要實現高可用,主要從以下兩個方面來考慮:

  1. 保證數據安全不丟失
  2. 系統可以正常提供服務

而 Redis 作為一個提供高效緩存服務的數據庫,也不例外。

上期我們提到的 Redis 持久化策略,其實就是為了減少服務宕機后數據丟失,以及快速恢復數據,也算是支持高可用的一種實現。

除此之外,Redis 還提供了其它幾種方式來保證系統高可用,業務中最常用的莫過于主從同步(也稱作主從復制)、Sentinel 哨兵機制以及 Cluster 集群。

同時,這也是面試中出現頻率最高的幾個主題,這期我們先來講講 Redis 的主從復制。

2. 主從復制簡介

Redis 同時支持主從復制和讀寫分離:一個 Redis 實例作為主節點 Master,負責寫操作。其它實例(可能有 1 或多個)作為從節點 Slave,負責復制主節點的數據。

2.1 架構組件

圖片

主節點Master

數據更新:Master 負責處理所有的寫操作,包括寫入、更新和刪除等。

數據同步:寫操作在 Master 上執行,然后 Master 將寫操作的結果同步到所有從節點 Slave 上。

從節點Slave

數據讀取:Slave 負責處理讀操作,例如獲取數據、查詢等。

數據同步:Slave 從 Master 復制數據,并在本地保存一份與主節點相同的數據副本。

2.2 為什么要讀寫分離

1)防止并發

從上圖我們可以看出,數據是由主節點向從節點單向復制的,如果主、從節點都可以寫入數據的話,那么數據的一致性如何保證呢?

有聰明的小伙伴可能已經想到了,那就是加鎖!

但是主、從節點分布在不同的服務器上,數據跨節點同步時又會出現分布式一致性的問題。而在高頻并發的場景下,解決加鎖后往往又會帶來其它的分布式問題,例如寫入效率低、吞吐量大幅下降等。

而對于 Redis 這樣一個高效緩存數據庫來說,性能降低是難以忍受的,所以加鎖不是一個優秀的方案。

那如果不加鎖,使用最終一致性方式呢?

這樣 Redis 在主、從庫讀到的數據又可能會不一致,帶來業務上的挑戰,用戶也是難以接受的。

業務為用戶服務,技術為業務服務。

所以,為了權衡數據的并發問題和用戶體驗,我們只允許在主節點上寫入數據,從節點上讀取數據。

不理解分布式一致性的同學可以看我之前的這篇文章:深入淺出:分布式、CAP和BASE理論

2)易于擴展

我們都知道,大部分使用 Redis 的業務都是讀多寫少的。所以,我們可以根據業務量的規模來確定掛載幾個從節點 Slave,當緩存數據增大時,我們可以很方便的擴展從節點的數量,實現彈性擴展。

同時,讀寫分離還可以實現數據備份和負載均衡,從而提高可靠性和性能。

3)高可用保障

不僅如此,Redis 還可以手動切換主從節點,來做故障隔離和恢復。這樣,無論主節點或者從節點宕機,其他節點依然可以保證服務的正常運行。

3. 主從復制實現

3.1 開啟主從復制

要開啟主從復制,我們需要用到 replicaof 命令。

當我們確定好主節點的 IP 地址和端口號,在從庫執行 replicaof <masterIP> <masterPort> 這個命令,就可以開啟主從復制。

注意,在 Redis5.0 之前,該命令為 slaveof

開啟主從復制后,應用層采用讀寫分離,所有的寫操作在主節點進行,所有讀操作在從節點進行。

主從節點會保持數據的最終一致性:主庫更新數據后,會同步給從庫。

3.2 主從復制過程

那主從庫同步什么時候開始和結束呢?

是一次性傳輸還是分批次寫入?Redis 主從節點在同步過程中網絡中斷了,沒傳輸完成的怎么辦?

帶著這些疑問我們來分析下,首先,Redis 第一次數據同步時分 3 個階段。

圖片

1)建立連接,請求數據同步

主從節點建立連接,從庫請求數據同步。

從服務器從 replicaof 配置項中獲取主節點的 IP 和 Port,然后進行連接。

連接成功后,從服務器會向主服務器發送 PSYNC 命令,表示要進行同步。同時,命令中包含 runID 和 offset 兩個關鍵字段。

  • runID:每個 Redis 實例的唯一標識,當主從復制進行時,該值為 Redis 主節點實例的ID。由于首次同步時還不知道主庫的實例ID,所以該值第一次為 ?
  • offset:從庫數據同步的偏移量,當第一次復制時,該值為 -1,表示全量復制

主服務器收到 PSYNC 命令后,會創建一個專門用于復制的后臺線程(replication thread),然后記錄從節點的 offset 參數并開始進行 RDB 同步。

2)RDB 同步

主庫生成 RDB 文件,同步給從庫。

當從服務器連接到主服務器后,主服務器會將自己的數據發送給從服務器,這個過程叫做全量復制。主服務器會執行 bgsave 命令,然后 fork 出一個子進程來遍歷自己的數據集并生成一個 RDB 文件,將這個文件發送給從服務器。

在這期間,為了保證 Redis 的高性能,主節點的主進程不會被阻塞,依舊對外提供服務并接收數據寫入緩沖區中。

從服務器接收到 RDB 文件后,會清空自身數據,然后加載這個文件,將自己的數據集替換成主服務器的數據集。

3)命令同步

在第一次同步過程中,由于是全量同步,所以用時可能比較長,這期間主庫依舊會寫入新數據。

但是,在數據同步一開始就生成的 RDB 文件中顯然是沒有這部分新增數據的,所以第一次數據同步后需要再發送一次這部分新增數據。

這樣,主服務器需要在發送完 RDB 文件后,將期間的寫操作重新發送給從服務器,以保證從服務器的數據集與主服務器保持一致。

3.3 增量同步

1)命令傳播

在完成全量復制后,主從服務器之間會保持一個 TCP 連接,主服務器會將自己的寫操作發送給從服務器,從服務器執行這些寫操作,從而保持數據一致性,這個過程也稱為基于長連接的命令傳播(command propagation)。

增量復制的數據是異步復制的,但通過記錄寫操作,主從服務器之間的數據最終會達到一致狀態。

2)網絡斷開后數據同步

命令傳播的過程中,由于網絡抖動或故障導致連接斷開,此時主節點上新的寫命令將無法同步到從庫。

即便是抖動瞬間又恢復網絡連接,但 TCP 連接已經斷開,所以數據需要重新同步。

從 Redis 2.8 開始,從庫已支持增量同步,只會把斷開的時候沒有發生的寫命令,同步給從庫。

圖片

詳細過程如下:

  1. 網絡恢復后,從庫攜帶之前主庫返回的 runid,還有復制的偏移量 offset 發送 psync runid offset 命令給主庫,請求數據同步;
  2. 主庫收到命令后,核查 runid 和 offset,確認沒問題將響應 continue 命令;
  3. 主庫發送網絡斷開期間的寫命令,從庫接收命令并執行。

這時,有細心的小伙伴可能要問了,網絡斷開后,主庫怎么知道哪些數據是新寫入的呢?

這是個好問題,接下來我們詳細說明一下。

3)增量復制的關鍵

Master 在執行寫操作時,會將這些命令記錄在 repl_backlog_buffer (復制積壓緩沖區)里面,并使用 master_repl_offset 記錄寫入的位置偏移量。

而從庫在執行同步的寫命令后,也會用 slave_repl_offset 記錄寫入的位置偏移量。正常情況下,從庫會和主庫的偏移量保持一致。

但是,當網絡斷開后,主庫繼續寫入,而從庫沒有收到新的同步命令,所以偏移量就停止了。所以,master_repl_offset 會大于 slave_repl_offset。

注意:主從庫實現增量復制時,都是在 repl_backlog_buffer 緩沖區上進行。

網絡斷開前后,主從庫的同步圖如下:

圖片

repl_backlog_buffer 復制積壓緩沖區是一個環形緩沖區,如果緩沖區慢了(比如超過 1024),則會從頭覆蓋掉前面的內容。

所以,當網絡恢復以后,主節點只需將 master_repl_offset 和 slave_repl_offset 之間的內容同步給從庫即可(圖中 256~512 這部分數據)。

需要注意的是,主庫的積壓緩沖區默認為 1M,如果從庫網絡斷開太久,緩沖區之前的內容已經被覆蓋,這時主從的數據復制就只能采取全量同步了。

所以我們需要根據業務量和實際情況來設置 repl_backlog_buffer 的值。

4. 小結

面讓架構易于擴展,另一方面防止單體故障:當主庫掛了,可以立即拉起從庫,不至于讓業務停滯太久。

而首次主從復制包括建立連接,RDB 同步和命令同步三個階段。

為了保證同步的效率,除了第一次需要全量同步以外,例如當主從節點斷連后,則只需要增量同步,這是由主從庫的復制偏移量以及主庫的 repl_backlog_buffer 復制積壓緩沖區來控制的。

責任編輯:武曉燕 來源: xin猿意碼
相關推薦

2020-04-14 16:26:22

MySQL線程同步

2023-12-25 08:02:09

2025-03-25 08:50:00

2023-09-24 14:32:15

2025-09-15 00:00:01

2025-03-24 00:00:15

2024-07-04 08:00:24

2018-05-14 17:36:59

2018-05-14 11:31:02

2025-01-15 15:47:36

2017-09-05 16:00:49

MySQL主從復制備份

2015-12-23 11:32:50

2022-11-25 07:59:43

JavaIOGuava

2021-01-12 09:03:17

MySQL復制半同步

2023-03-15 08:30:37

2023-03-19 22:38:12

邏輯復制PostgreSQL

2023-03-19 11:53:27

2025-02-28 00:00:00

2009-04-23 08:31:23

微軟鮑爾默收購

2021-05-28 11:54:29

MySQL數據庫主從復制
點贊
收藏

51CTO技術棧公眾號

性无码专区无码| free性中国hd国语露脸| 黄色网页在线免费观看| 国产一区欧美一区| 久久久久亚洲精品国产| 黄色国产在线观看| 99久久亚洲国产日韩美女| 亚洲欧美视频一区| 久久亚洲综合网| 国产精品国产一区二区三区四区| 欧美特黄一区| 国产一区二区三区在线播放免费观看| 最新av免费在线观看| av电影在线免费| 欧美国产日韩一二三区| 亚洲在线视频福利| 日韩综合在线观看| 欧美午夜不卡影院在线观看完整版免费| 亚洲国产美女精品久久久久∴| 99热这里只有精品在线播放| 日本精品600av| 国产欧美一区二区精品性色 | 国产精品3区| 欧美午夜激情小视频| 影音欧美亚洲| 毛片在线能看| 高清成人在线观看| 国产欧美日韩中文字幕| 偷偷操不一样的久久| 婷婷综合久久| 国产一区二区三区在线观看视频 | 日韩区欧美区| 欧美日韩另类一区| 国产二区视频在线播放| 性欧美猛交videos| 国产精品久线在线观看| 欧美伦理一区二区| 日韩一区二区三区不卡| 国产一区不卡在线| 国产精品爽爽爽| 伊人久久久久久久久久久久| 一区二区毛片| 欧美激情亚洲自拍| 日韩欧美中文字幕视频| 欧美电影免费观看高清| 亚洲女人被黑人巨大进入al| 国产精品久久久久久亚洲av| 精品一区二区三区亚洲| 欧美军同video69gay| 天天影视综合色| 成人av观看| 欧美日韩性生活视频| 精品久久久久久无码中文野结衣| 神马午夜伦理不卡| 亚洲美女屁股眼交3| 黄色www在线观看| 日本精品在线| 综合精品久久久| 综合久久国产| 黄色网址视频在线观看| 亚洲欧洲精品天堂一级| 在线码字幕一区| 免费观看成人高潮| 亚洲欧美另类在线| 老汉色影院首页| 91最新在线视频| 亚洲激情五月婷婷| 青青青青在线视频| a级影片在线| 亚洲成人免费视频| 久艹在线免费观看| 瑟瑟视频在线看| 在线免费亚洲电影| 中文字幕精品一区二区三区在线| 久久久久久一区二区三区四区别墅| 欧美在线综合视频| 性刺激的欧美三级视频| 成人污污www网站免费丝瓜| 91精品国产乱码| 韩国三级在线看| 牛牛影视久久网| 亚洲图片在线综合| a一级免费视频| 极品av少妇一区二区| 欧美一级片一区| 一本色道久久综合无码人妻| 国产一区二区三区四区五区入口 | 欧美成aaa人片免费看| 久久久久久蜜桃| 久久人人97超碰国产公开结果| 国产精品欧美激情| www.四虎在线观看| 99久久99久久精品免费看蜜桃| 欧美日韩在线高清| h片在线观看网站| 欧美日韩亚洲天堂| 怡红院亚洲色图| 88久久精品| 亚洲免费成人av电影| 欧美美女性生活视频| 国内视频精品| 国产精品免费电影| 蜜桃视频在线观看www| 国产亚洲欧美日韩在线一区| 经典三级在线视频| 中文字幕高清在线播放| 在线综合视频播放| 色欲av无码一区二区三区| 91精品国产91久久久久久密臀| 久久男人资源视频| 夜夜嗨aⅴ一区二区三区| 99久久精品国产观看| 五月天男人天堂| 在线观看v片| 日韩美女主播在线视频一区二区三区| 国产全是老熟女太爽了| 欧美成熟视频| 国产精品一久久香蕉国产线看观看| 亚洲av无码片一区二区三区| 国产女主播在线一区二区| 国产 日韩 亚洲 欧美| 农村妇女一区二区| 亚洲精品中文字幕有码专区| 麻豆一区二区三区精品视频| 免费xxxx性欧美18vr| 久久精品国产一区二区三区不卡| 九七久久人人| 色噜噜夜夜夜综合网| 四虎成人免费视频| 亚洲蜜桃视频| 国产精品96久久久久久| 午夜小视频免费| 亚洲影院在线观看| 欧美美女一级片| 国产成人黄色| 欧美孕妇与黑人孕交| 午夜老司机福利| 亚洲欧美一区二区久久| 亚洲欧美自偷自拍另类| 国产欧美亚洲精品a| 97超级碰碰人国产在线观看| 好吊视频一二三区| 亚洲一线二线三线视频| 特级西西444www| 国产精品99一区二区三| 国产伊人精品在线| 在线激情免费视频| 欧美日韩五月天| 精品一区二区三区蜜桃在线| 日日夜夜免费精品| 免费成人看片网址| 日本蜜桃在线观看视频| 精品亚洲一区二区三区在线观看 | 丰满岳乱妇一区二区| 国产主播精品| 国产精品久久久久免费 | 91黑丝高跟在线| 日韩一卡二卡在线| 精品女同一区二区三区在线播放| 日批在线观看视频| 免费一区视频| 欧美精品在线一区| 成人自拍视频网| 俺也去精品视频在线观看| 在线免费观看一级片| 亚洲欧美自拍偷拍色图| 亚洲成人av免费观看| 国产精品红桃| 精品国产区在线| 韩漫成人漫画| 色综久久综合桃花网| 国产视频一区二区三| 一区二区视频免费在线观看| 国产一级二级av| 国产亚洲福利| 色综合久久88色综合天天提莫| 九九热这里有精品| 欧美成在线视频| 男人天堂网在线视频| 午夜精品久久久久| 男女做爰猛烈刺激| 老司机免费视频一区二区三区| 蜜桃视频成人在线观看| 国产精品jk白丝蜜臀av小说| 国产成人午夜视频网址| 蜜芽在线免费观看| 亚洲成人免费在线视频| 国产真人无遮挡作爱免费视频| 18成人在线观看| 男女性杂交内射妇女bbwxz| 久热国产精品| 老汉色影院首页| 亚洲国产国产| 91久久精品在线| 在线能看的av网址| 在线视频免费一区二区| www.国产三级| 色乱码一区二区三区88| 亚洲最大的黄色网址| 99久久婷婷国产综合精品电影| 美女在线视频一区二区| 1024成人| 偷拍盗摄高潮叫床对白清晰| 美女av一区| 成人国产精品av| 中文字幕高清在线播放| 美日韩精品免费视频| 欧美精品久久久久久久久久丰满| 欧美一区二区三区四区在线观看 | xxx在线播放| 国产成人av资源| 毛片av免费在线观看| 欧美日韩 国产精品| 亚洲 日韩 国产第一区| 林ゆな中文字幕一区二区| 91久久久在线| 亚洲国产尤物| 4438全国成人免费| 中文在线手机av| 中文字幕日本精品| 久草在线免费福利资源| 精品国产91乱码一区二区三区| 伊人精品一区二区三区| 欧美日韩中文字幕在线| 免费在线观看亚洲| 一色屋精品亚洲香蕉网站| 国产精品揄拍100视频| 成人自拍视频在线观看| 久久久久久久久久一区| 热久久免费视频| 欧美三级一级片| 亚洲国产影院| 中文字幕日韩精品无码内射| 图片小说视频色综合| 日韩av大全| 网红女主播少妇精品视频| 成人动漫视频在线观看完整版 | 国产精品有限公司| 国产高清日韩| 91免费综合在线| 色成人综合网| 成人欧美一区二区三区在线| 岛国一区二区| 国产精品久久久久久久久男| 欧美片第1页| 日本一区二区不卡| 欧美magnet| 日本久久精品视频| 欧洲精品一区二区三区| 日韩女优在线播放| 亚洲精品一区| 国产成人鲁鲁免费视频a| 在线日本欧美| 国产精品久久网| 欧美大片网站| 亚洲xxxxx电影| 一区二区三区视频播放| 国产传媒一区二区三区| 成人资源在线播放| 国产一区二区不卡视频在线观看| 成人盗摄视频| 久久精品国产一区二区三区不卡| 亚洲瘦老头同性70tv| 日韩亚洲视频在线| 99久久亚洲精品蜜臀| 水蜜桃在线免费观看| 韩国精品一区二区三区| 日本在线xxx| 天堂va蜜桃一区二区三区漫画版 | 日韩一区二区三区免费视频| 国产精品 欧美在线| 香蕉久久一区| www.久久久| 欧美激情影院| 神马影院一区二区| 中国成人一区| 免费国产a级片| 美女视频网站黄色亚洲| 免费人成视频在线播放| 99精品在线免费| 人妻精品久久久久中文| 亚洲欧美另类久久久精品| 久久久香蕉视频| 日本丶国产丶欧美色综合| 91丨porny丨在线中文 | 亚洲精品久久久蜜桃动漫| 亚洲大尺度美女在线| 黄色在线观看网| 久热精品在线视频| 男人av在线播放| 国产欧美日韩精品丝袜高跟鞋| 国产亚洲精aa在线看| 精品国产综合区久久久久久| 欧美日韩国产传媒| 久久久99精品视频| 噜噜噜91成人网| 污视频在线观看免费网站| 久久伊99综合婷婷久久伊| 四虎影院中文字幕| 狠狠色狠色综合曰曰| 国产男男gay体育生白袜| 国产视频精品免费播放| 中文字幕中文字幕在线中高清免费版| 538国产精品视频一区二区| 亚洲a成人v| 欧美日韩亚洲在线| 伊人久久大香线蕉精品组织观看| 国产女女做受ⅹxx高潮| 国产精品99久久久久久有的能看| 91精品人妻一区二区| 亚洲男同性恋视频| 男人天堂视频在线| 精品国产露脸精彩对白| 尤物网在线观看| 欧美一级片在线播放| 白白在线精品| 国产免费一区二区三区四在线播放| 久久精品一区二区三区中文字幕 | 亚洲网址在线观看| 日韩国产伦理| 亚洲在线电影| 日韩无码精品一区二区| 亚洲激情成人在线| 国产又粗又黄又爽| 在线中文字幕日韩| 亚洲精品88| 精品欧美日韩在线| 国内精品久久久久久久97牛牛| 久久国产这里只有精品| 国产午夜精品一区二区三区嫩草| 国产女同在线观看| 欧美成人精品高清在线播放 | 国产精品久久国产精麻豆99网站| 国产成人在线免费观看视频| 亚洲精品在线免费观看视频| 国产网友自拍视频导航网站在线观看| 国产精品高潮呻吟视频| 免费一区二区| 欧美三级一级片| thepron国产精品| 精品午夜福利在线观看| 欧美成人vps| 国产乱妇乱子在线播视频播放网站| 亚洲一区二区三区久久| 亚洲精品一区二区妖精| 精品亚洲视频在线| 18欧美亚洲精品| 国产视频第一页| 欧美国产极速在线| 一区二区三区视频播放| 日韩精品一区二区免费| 懂色av一区二区夜夜嗨| 国产一级性生活| 欧美精品一区二区三| 嗯~啊~轻一点视频日本在线观看| 精品999在线观看| 亚洲女同同性videoxma| 蜜臀av一区二区三区有限公司| 欧美日韩亚洲精品内裤| 九色在线观看视频| 国产精品热视频| 2023国产精品久久久精品双| 亚洲精品乱码久久久久久动漫| 亚洲欧美另类综合偷拍| 亚洲精品97久久中文字幕| 国内精品视频一区| 亚洲三级精品| 伊人国产在线视频| 亚洲视频一二三| 丰满人妻一区二区三区免费视频| 国模私拍一区二区三区| 深夜福利久久| 日韩精品视频一二三| 一区二区三区国产精品| 手机在线观看毛片| 国产成人精品电影久久久| 99成人在线视频| 无码成人精品区在线观看| 91高清视频免费看| 成年人黄视频在线观看| 国产一区二区在线观看免费播放| 久热国产精品| 欧美日韩一级大片| 精品视频在线播放免| 色婷婷成人网| 波多野结衣家庭教师在线播放| 欧美韩日一区二区三区| 性中国古装videossex| 欧美中文字幕在线| 欧美顶级大胆免费视频| 少妇被狂c下部羞羞漫画| 欧日韩精品视频| 国产乱妇乱子在线播视频播放网站| 欧美日韩精品综合| 国产一区二区美女| 亚洲影院在线播放| 色综合久久88色综合天天看泰| 九九精品在线| 佐佐木明希电影| 欧美日韩一区在线观看|