# 1??Redis主從服務配置
### 1.1概述
Redis的主從復制功能非常強大,一個master可以擁有多個slave,而一個slave又可以擁有多個slave,如此下去,形成了強大的多級服務器集群架構。主從同步,有以下好處:
實現數據的備份,減少單點故障帶來的損失;有利于實現負載均衡。本來一臺服務器負責所有數據的讀寫,而通過主從同步,可以讓多個從服務器負責數據的讀,而主服務器主要負責數據的寫,減輕了單點壓力。
### 1.2實現機制
(1)Slave服務器連接到Master服務器.
(2)Slave服務器發送SYCN命令.
(3)Master服務器備份數據庫到.rdb文件.
(4)Master服務器把.rdb文件傳輸給Slave服務器.
(5)Slave服務器把.rdb文件數據導入到數據庫中.
上面的這5步是同步的第一階段,?接下來在Master服務器上調用每一個命令都使用replicationFeedSlaves()來同步到Slave服務器.而replicationFeedSlaves()主要做的工作就是把用戶執行的命令發送到所有的Slave服務器,?讓Slave服務器執行.?這樣就可以實施同步功能.
### 1.3相關配置
**案例:**
主服務:172.168.10.254?? 6379
從服務:172.168.10.254?? 6380
修改redis.conf配置文件,主要配置如下:
1)? 配置相應的ip和端口
主:
bind172.168.10.254 ??????????????????????????#綁定主機IP, (必須修改為網卡ip地址)
port?? 6379?????????????????????????????????? #監聽端口,默認為6379
從:
bind172.168.10.254 ??????????????????????????#綁定主機IP, (必須修改為網卡ip地址)
port?? 6380?????????????????????????????????? #監聽端口,默認為6379
2)? 修改從服務redis.conf 配置:
slaveof172.168.10.254? 6379??????????????? ??#設置主服務的IP及端口
slave-read-only????? yes????????????????????? #配置從機是否只讀
masterauthpwd123??????????? ?????????????????#設置主服務的連接密碼
slave-serve-stale-datayes??????????????????? #在master服務器掛掉或者同步失敗時,從服務器是否繼續提供服務。
#repl-ping-slave-period10??????? ?????????? #master端ping slave端的時間間隔,時刻檢測slave連接的有效
#repl-timeout60?????????????????? # replication連接的超時時間
#slave-priority100????????????????? #slave的權重,用于redis sentinel模式中,如果masterdown,權重大的slave接替master???????
slave-priority100??????????????????????????? #slave級別,數字越小級別越大(在master掛掉,slave升級用到)
### 1.4測試驗證
主從服務配置完成后,啟動相應服務;
1)? 從服務日志信息將顯示從masger主服務同步數據:

2)? 主服務日志信息將顯示slave從同步數據成功:

3) 分別用redis-cli連接:
[root@centosredis]# redis-cli -h 172.168.10.254 -p 6379
172.168.10.254:6379>
[root@centosredis]# redis-cli -h 172.168.10.254 -p 6380
172.168.10.254:6380>
4)? 測試:
在主服務設置相應的key數據:

在從服務上可以查看到相應的同步數據:

此時查看主從服務的相應日志文件可以看到:
主服務:

從服務:

可以看到的是當主服務數據發生變化時,將實時同步到從服務上。
至此Redis主從服務數據同步配置完成!