Redis資料庫主從複製配置詳解

來源:互聯網
上載者:User

一、複製基本配置與示範

 

  為了避免單點故障,Redis提供了複製功能,可以實現自動同步的過程。

 

  1、配置

 

  同步後的資料分為兩類:一類是主要資料庫(master),一類是從資料庫(slave)。主要資料庫可以進行讀寫操作,當發生寫操作時自動將資料同步給從資料庫。而從資料一般唯讀,並接受主要資料庫同步過來的資料。

 

  在Redis使用複製功能,只需要在從資料庫的設定檔中加入"salveof 主要資料庫IP 主要資料庫連接埠"即可,主要資料庫無需進行任何配置。

 

  2、Redis複製示範

 

  下面我們在同一台伺服器上啟動兩個Redis執行個體,監聽不同的連接埠,其中一個作為主要資料庫,另一個作為從資料庫。

 

  首先,我們要複製一個Redis服務的設定檔,並取名為redis6380.conf。

 

  

 

  我們修改redis6380.conf設定檔中的連接埠號碼為6380,並且配置改Redis執行個體為主要資料庫的從資料庫。

 

  

 

  配置從資料庫

 

  

 

  接著,我做了兩個啟動Redis的bat批次檔,用於啟動兩個Redis資料庫:

 

  

 

  內容分別是:

 

 redis-server  redis.windows.conf    //啟動主要資料庫

 

redis-server  redis6380.conf       //啟動從資料庫

 

  現在我們啟動主從資料庫的用戶端:

 

  主要資料庫的用戶端就在Redis的安裝目錄下,雙擊redis-cli.exe即可。

 

  

 

  從資料庫的啟動,我們開啟cmd,進入Redis的目錄,輸入

 

  

 

  這樣,我們就有了兩個Redis資料庫服務端和用戶端,下面就來示範複製的功能:

 

  首先,在主要資料庫中輸入

 

  

 

  然後,在從資料庫的用戶端,我們進行查詢操作

 

  

 

  可以看到,在從資料庫中擷取的name屬性的值。

 

  注:除了通過設定檔或命令列設定slaveof參數,還可以在運行時使用slaveof命令修改:

 

  

 

  如果該資料庫已經是其他主要資料庫的從資料庫了,slaveof命令會停止和原來的資料庫的同步轉而和新的資料庫進行同步。

 

二、複製原理

 

  當一個資料庫啟動後,會向主要資料庫發送SYNC命令,主要資料庫收到SYNC命令後開始在後台儲存快照,並將儲存期間收到的命令緩衝起來。當快照完成後,Redis會將快照檔案和所有的緩衝的命令發送給從資料庫,從資料庫接收到後,會載入快照檔案並執行收到的緩衝的命令。當主從資料庫斷開重連後會重新執行上述操作。

 

三、從資料庫持久化

 

  為了提高效能,可以通過複製功能簡曆若干個從資料庫,並在從資料庫中啟用持久化,同時在主要資料中禁用持久化。當從資料庫崩潰時重啟後主要資料會自動將資料同步過來,所以無需擔心資料丟失。而當主要資料庫崩潰時,需要在從資料庫中使用slaveof no one 命令將從資料庫提升為主要資料繼續服務,並將原來的主要資料庫啟動後使用slaveof命令將其設定為新的主要資料庫的從資料庫,即可將新的資料同步過來

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.