本篇博文,將示例搭建redis 一主兩從集羣。
默認你在三臺服務器上都已經安裝了redis。(我是在一臺上搭建,然後複製了兩臺。)
本次搭建主從同步集羣使用了三臺Centos系統服務器。
角色 | IP地址 | 端口 |
---|---|---|
master | 192.168.56.85 | 6379 |
slave-1 | 192.168.56.86 | 6379 |
slave-2 | 192.168.56.87 | 6379 |
1. 在三臺服務器上分別創建redis配置文件
由於redis的命令都在redis文件夾的src目錄下,所以我們需要在src
目錄下創建redis配置文件,這樣會比較方便。
可以直接使用vi
命令,來創建並編輯。
主服務器上,src
目錄下 : vi master.conf
# 配置別的也可以訪問.
bind 0.0.0.0
# 配置守護線程
daemonize yes
# 端口,默認6379
port 6379
# 日誌輸出文件
logfile "6379.log"
slave-1服務器上,src
目錄下 : vi slave-1.conf
bind 0.0.0.0
# 配置守護進程
daemonize yes
# 端口,默認6379
port 6379
# 日誌輸出文件
logfile "slave-1.log"
# 從屬於主redis
slaveof 192.168.56.85 6379
slave-2服務器上,src
目錄下 : vi slave-2.conf
bind 0.0.0.0
# 配置守護進程
daemonize yes
# 端口,默認6379
port 6379
# 日誌輸出文件
logfile "slave-2.log"
# 從屬於主redis
slaveof 192.168.56.85 6379
2. 打開三臺服務器的防火牆
由於我們是在三臺服務器上搭建一主兩從,所以需要關閉防火牆。
Centos 查看防火牆狀態的命令是
systemctl status firewalld.service
Centos關閉防火牆的命令是
systemctl stop firewalld.service
開啓防火牆的命令是
systemctl start firewalld.service
3.啓動redis 服務
在主服務器上,打開redis服務
./redis-server master.conf
在slave-1服務器上打開redis服務
./redis-server slave-1.conf
在slave-2服務器上打開redis服務
./redis-server slave-2.conf
4.檢驗是否完成主從同步
可以在src目錄下使用過./redis-cli
命令,以客戶端的身份連接到redis服務器上。通過 info replication
命令來查看主從配置信息。
同樣在從redis服務器上分別檢查
5.檢驗讀寫分離
redis 主從同步搭建完畢之後,會默認使用讀寫分離,即主redis讀,從redis寫,我們在主redis上 set 一個key
可以去從redis上get一下試試
可以看到,從redis 無法寫,只能讀。 並且可以讀到主redis 剛纔set的數據。
總結
本篇是redis 搭建集羣的入門篇,只是實現了最基礎的一主兩從,在實戰中,可能要多主多從 ,並且要配置哨兵。哨兵可以實時監控master是否宕機,若宕機,可以通過投票機制選舉出來一個slave來當新的master。
當然,哨兵也是需要配置多個的。