1. 程式人生 > >4.Redis主從複製叢集搭建步驟

4.Redis主從複製叢集搭建步驟

本文主要介紹Redis主從複製的詳細配置步驟。

1.主-從模式;

2.主-從-從模式。

一、主-從模式
1.主從模式從結構上來看,其實就是擁有master和slave的redis叢集,其拓撲結構如圖所示:
這裡寫圖片描述

注意:Redis叢集不用安裝多個Redis,只需複製多個配置檔案,修改即可。因此,本文的前提是使用者需要自己安裝好redis。

2.在安裝好redis的前提下,複製三份配置檔案到自己定義的某個目錄下,如圖:
這裡寫圖片描述

3.修改redis_6379.conf、redis_6380.conf、redis_6381.conf三個配置檔案,如下所述:

# vim ./6379/redis_6379.conf 
# Redis使用後臺模式 daemonize yes # 關閉保護模式 protected-mode no # 註釋以下內容開啟遠端訪問 # bind 127.0.0.1 # 修改啟動埠為6379 port 6379 # 修改pidfile指向路徑 pidfile /usr/local/redis/etc/6379/redis_6379.pid 注意:以此類推,修改埠63806381配置。

4.啟動三個終端,在各自埠上分別啟動redis例項,如圖:
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
由上圖可知,已經在6379/6380/6381三個埠上啟動了三個redis伺服器。

5.使用【redis-cli -h host -p port】客戶端連線命令,任意進入一個redis伺服器

,如圖,這裡使用【redis-cli -h 192.168.1.107 -p 6379】進入了6379伺服器:
這裡寫圖片描述
由上圖可知,該redis還未配置有slave。

6.配置主從服務
      說明:主從服務的配置方式有兩種:
          (1). 在redis.conf配置檔案中設定slaveof

slaveof <masterip> <masterport>

          (2).使用redis-cli客戶端連線到redis服務,執行slaveof命令(此方式在重啟後將失去主從複製關係)

slaveof <masterip>
<masterport>

本示例在此使用第二種方式作為演示,如下所示。

#1.使用Redis客戶端連線上6380埠
[root@localhost 6380]# /usr/local/redis/bin/redis-cli -h 192.168.1.107 -p 6381
192.168.1.107:6381> slaveof 192.168.1.107 6379
OK
#2.使用Redis客戶端連線上6381埠
[root@localhost 6381]# /usr/local/redis/bin/redis-cli -h 192.168.1.107 -p 6380
192.168.1.107:6380> slaveof 192.168.1.107 6379
OK

OK,經此設定,即可將6380和6381兩個例項都設定為6379例項的slave。

7.檢視redis的主從關係

使用Redis客戶端連線上6379# redis-cli -h 192.168.1.107 -p 6379

檢視master主從關係 如下圖所示
192.168.1.107:6379> info replication

這裡寫圖片描述

使用Redis客戶端連線上6380埠或6381# redis-cli -h 192.168.1.107 -p 6380

檢視slave的主從關係 如下圖所示
192.168.1.107:6380> info replication

這裡寫圖片描述

8.測試
(1).在master寫入資料
這裡寫圖片描述
(2).在slave讀取資料
這裡寫圖片描述
這裡寫圖片描述
(3).在slave寫入資料

192.168.1.107:6380> set a 123
(error) READONLY You can't write against a read only slave.

說明:預設情況下redis資料庫充當master角色時是可讀可寫,而slave角色時是隻讀的,可以在配置檔案中開啟非只讀:slave-read-only no。

一、主-從-從模式
      之所以會出現該模式,是因為redis的主從模式的缺點是所有的slave節點資料的複製和同步都由master節點來處理,會造成master節點壓力太大,所以出現使用主-從-從模式來緩解master壓力。

1.主從從模式從結構上來看,其實就是在主從模式的基礎上,為slave增加slave的模式,其拓撲結構如圖所示:
這裡寫圖片描述

2.前面步驟同主從模式一致,只是在設定主從模式時,設定6381為6380的slave,如圖:

192.168.1.107:6381> slaveof 192.168.1.107 6380
OK

3.檢視主-從-從關係
     (1).使用redis客戶端登入6379
     使用redis客戶端登入6379,可以看到該redis例項充當master,如圖:
這裡寫圖片描述
     (2).使用redis客戶端登入6380
     使用redis客戶端登入6380,可以看到該redis例項既充當是master,也充當slave,如圖:
這裡寫圖片描述

     (3).使用redis客戶端登入6381
     使用redis客戶端登入6381,可以看到該redis例項充當slave,如圖:
這裡寫圖片描述

4.測試

(1).在master寫入資料

192.168.1.107:6379> set a 123
OK

(2).在slave讀取資料

192.168.1.107:6381> get a
"123"

192.168.1.107:6380> get a
"123"