配置Redis主從複製

來源:互聯網
上載者:User

標籤:

[構建高效能資料庫緩衝之redis主從複製][http://database.51cto.com/art/201407/444555.htm]

 

一、什麼是redis主從複製?

主從複製,當使用者往Master端寫入資料時,通過Redis Sync機制將資料檔案發送至Slave,Slave也會執行相同的操作確保資料一致;且實現Redis的主從複製非常簡單。

二、redis主從複製特點

1、同一個Master可以擁有多個Slaves。

2、Master下的Slave還可以接受同一架構中其它slave的連結與同步請求,實現資料的級聯複製,即Master->Slave->Slave模式;

3、Master以非阻塞的方式同步資料至slave,這將意味著Master會繼續處理一個或多個slave的讀寫請求;

4、Slave端同步資料也可以修改為非阻塞是的方式,當slave在執行新的同步時,它仍可以用舊的資料資訊來提供查詢;否則,當slave與master失去聯絡時,slave會返回一個錯誤給用戶端;

5、主從複製具有可擴充性,即多個slave專門提供唯讀查詢與資料的冗餘,Master端專門提供寫操作;

6、通過配置禁用Master資料持久化機制,將其資料持久化操作交給Slaves完成,避免在Master中要有獨立的進程來完成此操作。

三、redis主從複製原理

當啟動一個Slave進程後,它會向Master發送一個SYNC Command,請求同步串連。無論是第一次串連還是重新串連,Master都會啟動一個後台進程,將資料快照儲存到資料檔案中,同時Master會記錄所有修改資料的命令並緩衝在資料檔案中。後台進程完成快取作業後,Master就發送資料檔案給Slave,Slave端將資料檔案儲存到硬碟上,然後將其在載入到記憶體中,接著Master就會所有修改資料的操作,將其發送給Slave端。若Slave出現故障導致宕機,恢複正常後會自動重新串連,Master收到Slave的串連後,將其完整的資料檔案發送給Slave,如果Mater同時收到多個Slave發來的同步請求,Master只會在後台啟動一個進程儲存資料檔案,然後將其發送給所有的Slave,確保Slave正常。

四、伺服器資源清單


 

五、配置過程

關於Redis的安裝與配置這裡便不操作,想瞭解的朋友請閱讀:高效能資料庫緩衝之redis(一)http://cfwlxf.blog.51cto.com/3966339/1423106
 

3、1 Master端操作如下:運行redis服務
  1. [[email protected]_master sh]# redis-server/etc/redis/redis.conf 

查詢redis作業記錄

##通過閱讀記錄檔輸出的一些資訊,可以看出Master與Slave建立串連時,需要執行的會話機制:載入資料檔案至硬碟,用時0.012秒,可想而知速度是多麼的快,當然得依據資料的大小去評測;服務串連至6379連接埠,收到Slave同步串連請求,開啟“BGSAVE”同步等;
 

清除Master端資料庫中所有Key

  1. [[email protected]_master sh]# redis-cli   
  2. 127.0.0.1:6379> FLUSHALL   
  3. OK   
  4. 127.0.0.1:6379> keys *   
  5. (empty list or set) 
3、2 Slave端操作如下:

[[email protected]_slave ~]# vim/etc/redis/redis.conf

#添加Master端的IP與連接埠

  1. # slaveof <masterip><masterport>   
  2. slaveof 192.168.8.8 6379 
運行redis
  1. [[email protected]_slave ~]# redis-server/etc/redis/redis.conf 
查詢Slave作業記錄

##分析redis日誌,可以看出Slave與Master建立串連,資料同步的過程;如:發送SYNC命令,與Master端192.168.8.8:6379建立串連,然後Slave sync started;隨後Master發送PING命令檢查Slave的存活狀態,複製被繼續….

查詢資料庫中的所有key
  1. [[email protected]_slave ~]# redis-cli                   
  2. 127.0.0.1:6379> keys *   
  3. (empty list or set) 
3、3 slave2端操作如下:

[[email protected]_slave2 ~]# vim/etc/redis/redis.conf

#添加Slave端的IP與連接埠,實現級聯複製;

  1. # slaveof <masterip><masterport>   
  2. slaveof 192.168.8.10 6379 

#運行redis服務

  1. [[email protected]_slave2 ~]# redis-server/etc/redis/redis.conf 
查詢redis作業記錄

##結果與Slave1類似,只不過Slave2與Slave1(192.168.8.10:6379)建立串連,同步資料;MySQL的級聯複製便是這樣,Master->Slave1->Slave2;

#查詢資料庫的所有key

[[email protected]_slave2 ~]# redis-cli

127.0.0.1:6379> keys *

(empty list or set)

3、4 master端操作如下:
  1. [[email protected]_master sh]# redis-cli   
  2. 127.0.0.1:6379> MSET ID 1005 NAMEMariaDB City BeiJing   
  3. OK   
  4. 127.0.0.1:6379> MGET ID NAME City   
  5. 1) "1005" 
  6. 2) "MariaDB" 
  7. 3) "BeiJing" 
  8. 127.0.0.1:6379> keys *   
  9. 1) "NAME" 
  10. 2) "ID" 
  11. 3) "City" 
3、5 用戶端驗證同步結果slave1端驗證
  1. [[email protected]_slave ~]# redis-cli   
  2. 127.0.0.1:6379> auth [email protected]#aedf   
  3. 127.0.0.1:6379> keys *   
  4. 1) "City" 
  5. 2) "NAME" 
  6. 3) "ID" 
  7. 127.0.0.1:6379> MGET ID NAME City   
  8. 1) "1005" 
  9. 2) "MariaDB" 
  10. 3) "BeiJing" 

slave2端驗證

  1. [[email protected]_slave2 ~]# redis-cli   
  2. 127.0.0.1:6379> keys *   
  3. 1) "ID" 
  4. 2) "NAME" 
  5. 3) "City" 
  6. 127.0.0.1:6379> MGET ID NAME City   
  7. 1) "1005" 
  8. 2) "MariaDB" 
  9. 3) "BeiJing" 
四、Master write,Slave read機制

Redis的主從複製,通過程式實現資料的讀寫分離,讓Master負責處理寫請求,Slave負責處理讀請求;通過擴充Slave處理更多的並發請求,減輕Master端的負載,如:

此圖畫得比較簡易,展示了實現Redis讀寫分離的過程,通過判斷使用者讀寫請求,將write請求發送給Redis Master處理,Read請求發送給Redis Slave處理,文章中的不足之處,歡迎大家指點。

博文地址:http://cfwlxf.blog.51cto.com/3966339/1433637

【編輯精選】

  1. Redis進階實用特性:安全性與主從複製
  2. Redis資料庫進階實用特性:事務控制
  3. 一步完成MySQL向Redis遷移
  4. 深入理解Redis主鍵失效原理及實現機制
  5. 從應用角度談新浪微博Redis服務平台

配置Redis主從複製

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.