Redis集群(主從複製)

2022-09-12 22:12:32 字數 821 閱讀 6106

主從複製

主從複製原理

redis集群中有很多redis伺服器,這些reids伺服器分為主伺服器和從伺服器。

從伺服器會向主伺服器傳送命令:sync命令。

主伺服器接收到sync命令後,開始執行gbs**e命令生成rdb檔案(快照檔案)並使用緩衝區來記錄此後的寫命令

主伺服器gbs**e命令執行完畢後,會將次快照傳送給所有的從伺服器。而且在傳送期間會繼續記錄寫命令。

從伺服器接收到主伺服器傳送過來快照檔案,會載入這個快照檔案,並執行。

主服務在傳送完快照檔案後會向從伺服器傳送緩衝區命令。

從伺服器完成對快照檔案的載入,也會開始接收主伺服器的命令,並執行。

從伺服器和主伺服器執行相同的命令

通過這種方式完成主從複製。

優點:

保證主伺服器和從伺服器資料同步,實現讀寫分離,主伺服器用來執行寫命令,而從伺服器用來提供資料(讀)。

缺點:

redis不具備自動容錯和恢復功能,主從機器的宕機都會導致前段部分讀寫請求失敗,導致資料部分丟失。

主從複製有乙個很大的缺陷:主伺服器和從伺服器儲存的資料一樣,這是一種浪費。

redis3.0後提供redis-cluster集群,這是一種分布式儲存的集群方式:每乙個reids伺服器上儲存不同的資料,提高高可用。

redis在去儲存資料時,會通過乙個演算法計算key的結果,通過這個結果和插槽(16834)(hash槽:0-16383)做運算,將運算結果作為這個資料

的儲存位置,這樣就可以將資料儲存到不同的伺服器上,保證分布式儲存。

Redis集群 主從複製

從伺服器向主伺服器傳送sync 同步 請求。主伺服器收到這個請求之後,這個時候就不是單執行緒啦 開始生成rdb 快照檔案 並且使用緩衝區記錄之後所有的寫操作命令。快照檔案生成完畢之後,主伺服器,向從伺服器傳送快照檔案,這期間也繼續記錄執行過的寫命令。從伺服器接收快照檔案完畢之後,丟棄舊資料,載入快照...

MySQL與Oracle集群主從複製工具

oracle提供了dataguard mysql提供了group replication,簡稱mgr。oracle dataguard的文章 mysql group replication的文章 mysql讀寫分離的中介軟體工具 360先開源了360atlas,美團基於前者開源了dbproxy。為什...

redis(集群一)主從複製

主從複製工作流程從伺服器連線主伺服器,傳送sync命令。主伺服器接收到sync命令後,開始執行bgs e命令生成rdb檔案並使用緩衝區記錄此後執行的所有命令 主伺服器bgs e執行完成後,向所有伺服器傳送快照檔案,並在傳送期間繼續記錄被執行的寫命令 從伺服器接收到快照資料後丟棄所的有舊資料,載入收到...