<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                >[info] psync **psync命令運行需要以下組件支持** * 主從節點各自復制偏移量。 * 主節點復制積壓緩沖區。 * 主節點運行id ***** >[info] 全量復制流程: 全量復制主節點會將RDB文件也就是當前狀態去同步給slave,在此期間主新寫入的命令會單獨記錄起來,然后當RDB文件加載完畢之后,會通過偏移量對比將這個期間產生的寫入值同步給slave,這樣就能達到數據完全同步的效果。 ![](https://img.kancloud.cn/e2/83/e2831fc467a0520a5e471e053d6875ba_665x370.png) ***** **全量復制過程:** 1. 在其內部有一條命令`psync`,是做同步的命令,它可以完成全量復制和部分復制的功能,當啟動slave節點時,它會發送`psync`命令給主節點,需要傳遞兩個參數,`runid`和`offset`(偏移量),也就是從向主傳遞主節點的runid以及自己的偏移量,對于第一次復制而言,就直接傳遞?和 -1,當然這個參數是由slave內部傳的。 2. master接收到命令后知道從希望做全量復制,主就會將自己的runid和offset傳遞給從 3. slave節點保存master的基本信息 4. master執行`bgsave`生成RDB文件,并且在此期間新產生的寫入命令會被記錄到 5. 主向從傳輸RDB文件 6. 主向從發送復制緩沖區內容 7. 清空從節點舊的數據 8. 從節點加載RDB文件到內存中,同時加載緩沖區數據 ***** **全量復制的開銷:** 實際上全量復制的開銷是非常大的,主要體現在如下方面: 1. bgsave時間(對cpu、 內存、硬盤都會有一定的開銷) 2. RDB文件網絡傳輸時間(網絡帶寬) 3. 從節點清空數據時間(根據從節點的數據規模) 4. 從節點加載RDB的時間 5. 可能的AOF重寫時間(在最后從加載完RDB之后如果開啟了AOF,會做AOF重寫) ***** **全量復制除了上述開銷之外,還會有個問題:** 假如master和slave網絡發生了抖動,那一段時間內這些數據就會丟失,對于slave來說這段時間master更新的數據是不知道的。最簡單的方式就是再做一次全量復制,從而獲取到最新的數據,在redis2.8之前是這么做的。 >[info] 部分復制 如果發生類似抖動時候,可以有一種機制將這種損失降低到最低,如何實現的? 1. 如果發生了抖動,相當于連接斷開了 2. 主會將寫命令記錄到緩沖區,repl_back_buffer 3. 當slave再次去連接master時候,就是說網絡抖動結束之后,會觸發增量復制 4. 從會執行pysnc命令,將當前自己的offset和主的runid傳遞給master 5. 如果發現傳輸的offset偏移量是在buffer內的,不在期間內就證明你已經錯過了很多數據,buffer也是有限的,默認是1M,會將offset開始到隊列結束的數據同步給從。這樣master和slave就達到了一致。 通過部分復制(增量復制)有效的降低了全量復制的開銷。 ![](https://img.kancloud.cn/00/22/0022fef9af5febc10283d058b4becc0a_547x403.png) >[info] 1
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看