redis筆記08-redis主從複製

1. 集羣的作用

(1)主從備份,防止主機宕機

(2)讀寫分離,分擔master的任務

(3)任務分離,從服分別分擔備份工作與計算工作

 

2.集羣的形式:

左邊的:星形,所有的slave都圍着master

右邊的:線性,後面的slave作爲前面slave的slave。這樣的好處是:master宕機後,可以直接切換到slave1

 

3.主從通信過程

 

4.主要配置:

【Master配置】:

(1)關閉rdb快照(備份工作交給slave)

(2)可以開啓aof

 

【slave配置】:

(1)聲明slave-of

(2)配置密碼[如果master有密碼]

(3)[某1個]slave打開 rdb快照功能

(4)配置是否只讀[slave-read-only]

 

4.具體實現過程

【第一步:修改配置文件】

將 redis.conf 複製兩份,分別爲redis6380.conf 和 redis6381.conf。因爲默認的端口是6379.

① 主服務器redis.conf 的修改:

master 禁掉rdb,打開aof

如果需要加密碼(一般不建議設置密碼,因爲主從服務器是在內網)

搜索“password”找到如下:

改爲:(123456就是密碼)

如果設置了密碼,連接進去後就要密碼:

 

② 6380從服務器,vim redis6380.conf:

6380slave 打開rdb,禁掉aof

——→ 基本的修改,主要是針對端口的修改:

——→ slave的一些設置:

去掉註釋,改爲 slaveof localhost 6379 #6380服務器作爲6379服務器的slave。

作爲6379的slave服務器,保持只讀狀態。

 

③ 6381從服務器,vim redis6381.conf:

6381slave 禁掉rdb,禁掉aof

 

【第二步:分別打開三臺服務器】

【第三步:master寫入數據,slave查看數據】

# 在主服務器6379寫入數據

#新的終端連接6380 和 6381從服務器並查看

#由於設置了只讀,所以在從服務器無法寫入

#備註:如果主服務器設置了密碼,那麼從服務器就獲取不到主服務器的key了。

那麼就需要在所有的從服務器上也加上密碼,其實上面說了,內網之間其實是不需要密碼的。

找到如下:

改爲:(123456是上面master主服務器設置的密碼)

然後再試就可以在從服務器上獲取到主服務器的數據了。

 

5. redis主從複製的缺陷

每次salave斷開後,(無論是主動斷開,還是網絡故障),如果再連接master,都要把master全部dump出來rdb,再aof,即同步的過程都要重新執行一遍.

所以要記住---多臺slave不要一下都啓動起來,否則master可能I/O劇增

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章