redis 主從同步


修改redis.conf配置文件

vi redis.conf

在編輯模式下 輸入  /slaveof 來搜索

將slaveof啟用 即 將#刪除

依次配置所有 slave 並將進程 kill 掉 重啟

查看主從信息

 

 

redis 集群主從同步的簡單原理

  Redis的復制功能是基於內存快照的持久化策略基礎上的,也就是說無論你的持久化策略選擇的是什么,只要用到了Redis的復制功能,就一定會有內存快照發生。

  當Slave啟動並連接到Master之后,它將主動發送一個SYNC命令( 首先Master會啟動一個后台進程,將數據快照保存到文件中[rdb文件] Master 會給Slave 發送一個

Ping命令來判斷Slave的存活狀態 當存活時 Master會將數據文件發送給Slave 並將所有寫命令發送到Slave )。

  Slave首先會將數據文件保存到本地 之后再將 數據 加載到內存中。

  當第一次鏈接 或者是 故障后 重新連接 都會先判斷Slave的存活狀態 在做全部數據的同步  , 之后只會同步Master的寫操作(將命令發送給Slave)

問題:

  當  Master 同步數據時 若數據量較大 而Master本身只會啟用一個后台進程 來對多個Slave進行同步 , 這樣Master就會壓力過大 , 而且Slave 恢復的時間也會很慢!

redis 主從復制的優點:

      (1)在一個Redis集群中,master負責寫請求,slave負責讀請求,這么做一方面通過將讀請求分散到其他機器從而大大減少了master服務器的壓力,另一方面slave專注於提供

讀服務從而提高了響應和讀取速度。

  (2)在一個Redis集群中,如果master宕機,slave可以介入並取代master的位置,因此對於整個Redis服務來說不至於提供不了服務,這樣使得整個Redis服務足夠安全。

  (3)水平增加Slave機器可以提高性能

 

Slave 默認是只讀的更改:

  Master 可以 讀寫(Write and Read)  而 Slave只可以讀(read only默認情況)也可以更改  {但是開啟后Slave數據不會向上同步}

 

 

redis 主從同步兩種架構方式:

 

  1》:主從架構

    

 

  2》:主從從架構

 

  

 

  備注:

    因為Slave斷連,重連后仍然會全部同步數據,所以redis2.8版本后,增加了增量復制來解決宕機后重新鏈接仍然會全部同步!

 

    Master會維護一個環形隊列:

    隊列內存儲:1》:slave連接master的id值  2》:slave上一次同步的最后一個命令

    這樣當斷開重連后就不會全部同步,而只會在最后一個命令同步數據!

 

   寫這篇博客是為了加深理解並將自己了解到的知識記錄下來 , 同時在寫本博客的過程中,借鑒了許多優秀的博客,來完善 , 希望廣大博友批評指正。共同進步!

                                                                                                       2016/12/4

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM