1. 程式人生 > >redis叢集策略-主從複製

redis叢集策略-主從複製

一,主從複製:

  1. Master可以擁有多個slave
  2. 多個slave除了可以連線到同一個master外,還可以連線到其他的slave,但不常用。
  3. 主從複製不會阻塞到master,再同步資料時,master可以繼續處理client的請求。
  4. 主伺服器負責寫,從伺服器負責讀。

二,主從複製過程: 

  1. slave與master建立連線,傳送同步命令。
  2. master後臺會建立一個後臺程序將資料庫快照儲存到檔案中(rdb方式),主程序開始繼續收集寫入命令並且寫入快取。
  3. 完成了後臺的寫入檔案後,就將rdb檔案和快取傳送給slave。
  4. slave拿到rdb檔案後將檔案儲存至磁碟並執行收到的快取裡面的命令,就完成了主從複製。

三,配置主從複製:我這裡以自己的機器為例

1. 首先需要三臺伺服器(裝有redis的機器)

2. 我使用的機器,我使用centOs redis1 ip:192.168.159.137作為主伺服器,其餘兩個作為從伺服器。

centOs redis1 ip:192.168.159.137
centOs redis2 ip:192.168.159.138
centOs redis3 ip:192.168.159.139 

 3.配置從伺服器這裡以centOs redis2 ip:192.168.159.138為例

vim /usr/local/redis-4.0.0/redis.config

slaveof <masterip> <masterport>      masterip:主伺服器ip   masterport:主伺服器埠號

 

wq,儲存。

4. 啟動主伺服器centOs redis1 ip:192.168.159.137,啟動 centOs redis1 ip:192.168.159.138.

執行 從伺服器redis-cli,輸入info

發現 master_link_status:down ,主伺服器是關閉的。但我的主伺服器是開啟的。經過搜尋資料。主伺服器也需要配置一下。

5.配置主伺服器

vim /usr/local/redis-4.0.0/redis.config

(1)將 bind  127.0.0.1註釋掉

 

 (2)將protected-mode  改成no

 

儲存,啟動主伺服器和主伺服器,執行redis-cli。輸入info命令。

 主:

從:

 

測試:

主:

 

從:

 

可見已經成功。 

此時我們測試使用從伺服器set

 

發現報錯:意思就是從伺服器不能執行寫操作,只能讀。