redis自學(31)全量同步

蓝海的bug本發表於2024-04-09

資料同步原理

主從的第一次同步是全量同步:

Master如何判斷slave是不是第一次來同步資料?這裡會用到兩個很重要的概念:

  • Replication id:簡稱replid,是資料集的標記,id一致則說明是同一資料集。每一個master都有唯一的replid,slave則會繼承master節點的replid
  • offset:偏移量,隨著記錄在repl_baklog中的資料增多而逐漸增大。Slave完成同步時也會記錄當前同步的offset。如果slaveoffset小於masteroffset,說明slave資料落後於master,需要更新。

因此slave做資料同步,必須向master宣告自己的Replication idOffsetmaster才可以判斷到底需要同步哪些資料。

是不是第一次,是根據replid是否一致判斷的。

相關文章