1. 程式人生 > >Redis配置主從架構,實現讀寫分離

Redis配置主從架構,實現讀寫分離

Redis的主從架構,能幫助我們實現讀多,寫少的情況,下面配置Redis架構,很簡單。

這裡寫圖片描述

準備環境 vmware + rhel-server-7.0(101,102,103)+redis-3.2.0

1、在192.168.137.101安裝好redis3.2.0,我安裝的目錄如下

這裡寫圖片描述

2、通過ssh將redis資料夾copy到102和103的linux上

scp -rf redis/ root@192.168.137.102:/home/redis
scp -rf redis/ root@192.168.137.103:/home/redis

102,103的redis目錄如下,說明copy成功

這裡寫圖片描述

這裡寫圖片描述

3、配置master和slave關係,有如下倆種方式

a) 在redis.conf中設定slaveof,永久性

slaveof <masterip> <masterport>

b)使用redis-cli客戶端設定redis服務,暫時,redis重啟失效

slaveof <masterip> <masterport>

在102和103的conf/redis.conf的配置檔案配置為101的slave關係

這裡寫圖片描述

master的密碼可以直接在配置檔案裡面配置

這裡寫圖片描述

4、檢視設定情況,使用如下命令

info replication

101的主從關係,可以看slaves的連線數還有ip地址,埠

這裡寫圖片描述

102,103的主從關係,可以看master]的ip地址,埠

這裡寫圖片描述

若發現配置沒有問題,但是master_link_status一直是down,connected_slaves一直是0,查詢下,是不是三個ip之間不能拼通,如果能拼通,檢視下埠是否能拼通,可以在windows上通過telnet

telnet 192.168.137.101 6379

如果發現不能拼通,修改下配置檔案,將

bind 127.0.0.1

5、測試是否資料同步

在master設定一個key和value

這裡寫圖片描述

在101和102上分別get資料

這裡寫圖片描述

說明資料同步成功,接下來把102down掉,再重啟,然後get資料

這裡寫圖片描述

說明資料恢復成功,另外也說明在主從結構中,slave不能寫資料

主從複製的步驟:

1、從伺服器開始連結主伺服器時,會向主伺服器傳送一個 SYNC 命令
2、主服務接收到命令之後,執行 BGSAVE,非同步的將寫命令儲存到一個緩衝區裡面
3、主伺服器執行完BGSAVE之後,就.rdb 檔案(BOF的持久化檔案)傳送給從伺服器,從伺服器從該檔案恢復資料到記憶體中
4、主伺服器還會以 Redis 命令協議的格式, 將寫命令緩衝區中積累的所有內容都發送給從伺服器,從伺服器通過執行命令將資料恢復到記憶體中