redis當中的複製

人工智慧頻道發表於2020-05-21

在redis中,使用者可以透過執行SLAVEOF命令或者設定slaveof選項,讓一個伺服器取複製另一個伺服器。
傳統的複製由於在斷連之後,仍舊將複製流程全部走一遍(主伺服器儲存rdb檔案,傳輸檔案,傳輸命令),導致效率低下;新版的複製在斷線後,只執行在斷線後沒有同步的命令(從伺服器傳送PSYNC->主伺服器傳送+CONTINUE->同步命令)。
其實現的原理非常類似於tcp當中的seq和ack,這裡由三個部分構成
1. 主伺服器的複製偏移量和從伺服器的複製偏移量
2. 主伺服器的複製積壓緩衝區
3. 伺服器的執行ID,每個redis伺服器,無論主伺服器還是從伺服器,都會有自己的執行ID,由40個隨機的十六進位制字元組成。當從伺服器對主伺服器進行初次複製時,主伺服器會將自己的執行ID傳送給從伺服器,而從伺服器會將這個id儲存起來。當斷線重連的時候,會將這個ID傳送過去進行驗證。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545819/viewspace-2693502/,如需轉載,請註明出處,否則將追究法律責任。

相關文章