<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一、什么是主從復制 ### 1、單機有什么問題 * 機器故障 * 容量瓶頸 * QPS瓶頸 ### 2、主從復制的作用 * 數據副本 * 擴展讀性能 ### 3、一主多從 ## 二、主從復制配置 ### 1、命令實現 ![](https://box.kancloud.cn/ffddf97389495a8bd761d7ea0e7d817b_934x366.png =450x180) * 在6380 服務器上執行 slaveof 0.0.0.0 6379 * 取消復制,不想成為任何服務器的從 -- 在6380 服務器上執行 slaveof no one ### 2、配置實現 ~~~ slaveof ip port slave-read-only yes //只做讀操作,保障保障與主服務器數據一致 ~~~ ### 3、比較 | 方式 | 命令 | 配置 | | --- | --- | --- | | 優點 | 無需重啟 | 統一配置 | | 缺點 | 不便于管理 | 需要重啟 | ## 三、runid和復制偏移量 ### 1、runid * redis每次啟動的時候都會有一個隨機的id來保障redis的標識,重啟后消失。 * 查看runid ``` redis-cli -p 6979 info server | grep run run_id:dsfsdf34234wfdsdf23432fdsdf ``` ### 2、偏移量 * 一個數據寫入量的字節,記錄寫了多少數據。主服務器會把偏移量同步給從服務器,當主從的偏移量一致,則數據是完全同步的。 * 如果主從服務的偏移量大于從服務器,則主從不同步。 ~~~ redis-cli -p 6979 info replication //查看命令 slave_repl_offset:1978 // 偏移量參數 ~~~ ## 四、全量復制和部分復制 ### 1、全量復制 * 流程 * slave 向 master 傳遞命令 psync? -1 (因為第一次通信不知道master的runid和偏移量,所以傳-1) * master 向 slave 返回runid 和偏移量 * slave 保存 master 的信息 * master 執行 bgsave 生產RDB快照 * master 做send RDB 操作 向 slave 同步快照信息 * master 做 send buffer 操作 , 向 slave 同步 生成快照過程中的 緩存命令 * slave 加載 RDB文件及數據 * 開銷 * bgsave時間 * RDB文件網絡傳輸時間 * 從節點清空數據時間 * 從節點加載RDB的時間 * 可能的AOF重寫時間 ![](https://box.kancloud.cn/faba5668620f687f257cdc069f066e57_849x480.png =425x240) ### 2、部分復制 * redis 2.8后的功能,當網絡發生抖動斷開后,會用到部分復制的功能 * 當網絡發生抖動,slave會與master斷開 * master 寫命令時,會寫一份復制緩沖區的命令 * 當slave在此連接master時 ,傳遞命令 psync {offset} {runid} ,告訴 master 自己當前的偏移量是多少 * master 向 slave 返回CONTINUE 把 缺失的內容 傳遞過去。 ![](https://box.kancloud.cn/afcde1f61a86395226fb6159fcb5bdda_725x462.png =360x230) ## 五、故障處理 ## 六、主從復制常見問題 ### 1、讀寫分離 * 讀流量分攤到從節點 * 可能遇到問題: * 復制數據延遲 * 讀到過期數據 * 從節點故障 * 規避全量復制 * 第一次全量復制 * 第一次不可避免 * 小主節點、低峰 * 節點運行ID不匹配 * 主節點重啟(運行ID變化) * 故障轉義,例如哨兵或集群 * 復制積壓緩沖區不足 * 網絡中斷,部分復制無法滿足 * 增大復制緩沖區配置rel_backlog_size,網絡“增強”。 * 規避復制風暴 * 單主節點復制風暴 * 問題:主節點重啟,多從節點復制 * 更換復制拓撲 *
                  <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>

                              哎呀哎呀视频在线观看