亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Redis全量同步和增量同步原理

 更新時(shí)間:2023年04月09日 14:45:24   作者:兜兜轉(zhuǎn)轉(zhuǎn)m  
主從第一次同步是全量同步:也就是說,當(dāng)你主從節(jié)點(diǎn)連接建立后,需要執(zhí)行一次全量同步,但如果slave重啟后同步,此時(shí)slave重啟后,slave節(jié)點(diǎn)和master節(jié)點(diǎn)的數(shù)據(jù)之間有落后,因此需要進(jìn)行增量同步,感興趣的同學(xué)可以參考閱讀

全量同步

主從第一次同步是全量同步:也就是說,當(dāng)你主從節(jié)點(diǎn)連接建立后,需要執(zhí)行一次全量同步。那么Redis如何實(shí)現(xiàn)全量同步呢?

其實(shí)本質(zhì)就是Master 給 slave 發(fā)送其保存的RDB文件。slave讀取RDB文件恢復(fù)數(shù)據(jù)

 詳細(xì)介紹:

【第一步】slave與master建立連接后,master判斷該slave 是否是第一次建立連接。那么該如何判斷呢?

其實(shí)Master和slave都有一個(gè)Replication Id,簡稱replid,若id一致說明是已經(jīng)建立過連接了,不需要進(jìn)行全量同步,則需要進(jìn)行增量同步。

【第二步】master 執(zhí)行bgsave,生成RDB文件,同時(shí)在生成RDB的同時(shí),也會(huì)產(chǎn)生一個(gè)baklog文件記錄RDB期間的命令,然后將RDB文件發(fā)送給從節(jié)點(diǎn),從節(jié)點(diǎn)加載RDB文件中的數(shù)據(jù)。至此全量同步已經(jīng)完成。

【第三步】也就是后續(xù)master和slave在進(jìn)行同步時(shí)候就是增量同步。則需要利用之前生成的baklog文件。

【總結(jié)全量同步】

  • slave節(jié)點(diǎn)先進(jìn)行增量同步;
  • master節(jié)點(diǎn)判斷replid,發(fā)現(xiàn)不一致,拒絕增量同步;
  • master將完整內(nèi)存數(shù)據(jù)生成RDB,發(fā)送RDB到slave;
  • slave清空本地?cái)?shù)據(jù), 加載master的RDB;
  • master將RDB期間的命令記錄在repl_baklog,并持續(xù)將lgo知道命令發(fā)送給slave;
  • slave執(zhí)行接收到的命令,保持與master之間的同步。

增量同步

主從第一次同步是全量同步,但如果slave重啟后同步,此時(shí)slave重啟后,slave節(jié)點(diǎn)和master節(jié)點(diǎn)的數(shù)據(jù)之間有落后,因此需要進(jìn)行增量同步。

【過程】

master節(jié)點(diǎn)和slave節(jié)點(diǎn)中維護(hù)了一個(gè)環(huán)形數(shù)組(前文提到的repl_baklog)和一個(gè)指針為offset。

slave來申請?jiān)隽客?,帶著replid和offset,然后master根據(jù)獲取offset之后的數(shù)據(jù),將其發(fā)送給slave,slave進(jìn)行同步。

  • 此時(shí)會(huì)出現(xiàn)一個(gè)問題,當(dāng)slave下限太久時(shí),master中存儲(chǔ)的數(shù)據(jù)已經(jīng)超過了這個(gè)repl_baklog的上線,因此就需要重新進(jìn)行全量同步。

通過對Redis主從集群的同步介紹,可以從以下幾個(gè)方面來優(yōu)化Redis的主從集群

  • 在master中配置repl-diskless-sync yes 啟用無磁盤負(fù)責(zé),來避免全量同步時(shí)的磁盤IO。(應(yīng)用場景:你的磁盤傳輸比較慢,但是你的網(wǎng)絡(luò)帶寬很大,網(wǎng)絡(luò)狀況極好。)
  • Redis單節(jié)點(diǎn)上內(nèi)存占用不要太大。減少RDB文件的大小。
  • 適當(dāng)?shù)奶岣遰epl_baklog的大小,盡量slave恢復(fù)后做全量同步。
  • 限制一個(gè)master上的slave節(jié)點(diǎn)數(shù)量,可以采用主從鏈的形式。

總結(jié)

到此這篇關(guān)于Redis全量同步和增量同步原理的文章就介紹到這了,更多相關(guān)Redis全量和增量同步內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一次關(guān)于Redis內(nèi)存詭異增長的排查過程實(shí)戰(zhàn)記錄

    一次關(guān)于Redis內(nèi)存詭異增長的排查過程實(shí)戰(zhàn)記錄

    這篇文章主要給大家分享了一次關(guān)于Redis內(nèi)存詭異增長的排查過程實(shí)戰(zhàn)記錄,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • redis秒殺系統(tǒng)的實(shí)現(xiàn)

    redis秒殺系統(tǒng)的實(shí)現(xiàn)

    秒殺在很多活動(dòng)大促中都可以用到,本文主要介紹了redis秒殺系統(tǒng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Spring Boot整合Redis實(shí)現(xiàn)訂單超時(shí)處理問題

    Spring Boot整合Redis實(shí)現(xiàn)訂單超時(shí)處理問題

    這篇文章主要介紹了Spring Boot整合Redis實(shí)現(xiàn)訂單超時(shí)處理,通過這個(gè)基本的示例,你可以了解如何使用Spring Boot和Redis來處理訂單超時(shí)問題,并根據(jù)需要進(jìn)行擴(kuò)展和定制,需要的朋友可以參考下
    2023-11-11
  • Redis高并發(fā)防止秒殺超賣實(shí)戰(zhàn)源碼解決方案

    Redis高并發(fā)防止秒殺超賣實(shí)戰(zhàn)源碼解決方案

    本文主要介紹了Redis高并發(fā)防止秒殺超賣實(shí)戰(zhàn)源碼解決方案,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Redis中SDS簡單動(dòng)態(tài)字符串詳解

    Redis中SDS簡單動(dòng)態(tài)字符串詳解

    Redis中的SDS(Simple?Dynamic?String)是一種自動(dòng)擴(kuò)容的字符串實(shí)現(xiàn)方式,它可以提供高效的字符串操作,并且支持二進(jìn)制安全。SDS的設(shè)計(jì)使得它可以在O(1)時(shí)間內(nèi)實(shí)現(xiàn)字符串長度的獲取和修改,同時(shí)也可以在O(N)的時(shí)間內(nèi)進(jìn)行字符串的拼接和截取。
    2023-04-04
  • Redis 持久化 RDB 與 AOF的執(zhí)行過程

    Redis 持久化 RDB 與 AOF的執(zhí)行過程

    本文給大家記錄Redis 持久化RDB 與 AOF的執(zhí)行過程與配置,通過內(nèi)部觸發(fā) RDB 場景分析Redis 持久化 RDB的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11
  • Redis自增生成id的方法實(shí)踐

    Redis自增生成id的方法實(shí)踐

    在使用Redis時(shí),常常需要用到自增ID的功能,主要介紹了Redis自增生成id的方法實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 詳解Redis中key的命名規(guī)范和值的命名規(guī)范

    詳解Redis中key的命名規(guī)范和值的命名規(guī)范

    這篇文章主要介紹了詳解Redis中key的命名規(guī)范和值的命名規(guī)范,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 緩存替換策略及應(yīng)用(以Redis、InnoDB為例)

    緩存替換策略及應(yīng)用(以Redis、InnoDB為例)

    本文以Redis、InnoDB為例給大家講解緩存替換策略及應(yīng)用,本文給大家提到五種置換策略,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-07-07
  • 圖解Redis主從復(fù)制與Redis哨兵機(jī)制

    圖解Redis主從復(fù)制與Redis哨兵機(jī)制

    這篇文章主要介紹了圖解Redis主從復(fù)制與Redis哨兵機(jī)制,今天分享一下Redis的持久化、事務(wù)、管道相關(guān)的知識點(diǎn),需要的朋友可以參考下
    2023-03-03

最新評論