基於哨兵模式的redis集群搭建及驗證(一主二從三哨兵)


一、驗證環境
1、操作系統:win10
2、redis版本:redis-2.8.22
 
二、驗證步驟:
 
本次驗證方案為:采用一主(master)二從(slave)三(sentinel)的架構模式
master ip:127.0.0.1 port:6379
slave0 ip:127.0.0.1 port:6380
slave1 ip:127.0.0.1 port:6381
 
sentinel-26379 ip:127.0.0.1 port:26379
sentinel-26380 ip:127.0.0.1 port:26380
sentinel-26381 ip:127.0.0.1 port:26381
 
1.下載Redis安裝包
解壓並且復制三份,名字分別為,Redis-x64-2.8.2-6379,Redis-x64-2.8.2-6380,Redis-x64-2.8.2-6381
 
2.修改配置文件(redis.windows.conf)
  2.1.主配置文件修改內容(6379)
#redis訪問端口號
port 6379
#綁定redis訪問地址
bind 127.0.0.1
  2.2. 從配置文件修改內容(6380)
#redis訪問端口號
port 6380
#綁定redis訪問地址
bind 127.0.0.1
#綁定master服務ip port
slaveof 127.0.0.1 6379
  2.3. 從配置文件修改內容(6381)
#redis訪問端口號
port 6381
#綁定redis訪問地址
bind 127.0.0.1
#綁定master服務ip port
slaveof 127.0.0.1 6379
 
3.啟動redis服務
分別切換到對應目錄啟動master,slave0,slave1,執行啟動命令:
redis-server.exe redis.windows.conf
啟動后頁面
 
驗證是否6379是master,6380和6381是slave
1.使用連接工具
 
連接redis分別執行命令:
info replication 
主服務
從服務80
從服務81
驗證主從綁定成功!
 
4.三哨兵搭建
 
4.1.在redis文件夾下建一個 sentinel-26379.conf,sentinel-26380.conf ,sentinel-26381.conf
 
 
4.2 哨兵配置文件內容分別是:
主配置文件內容(6379)
 
# 配置 sentinel 端口號
port 26379
# 以守護進程啟動
daemonize yes
# 綁定只在本地使用
bind 127.0.0.1
# 日志文件名稱
logfile "sentinel_26379.log"
# 日志文件存放地址
dir "./"
# 監控 master 名字叫做 mymaster,地址是 127.0.0.1 端口號是 63791 表示有幾個 sentinel 認為該 master 出現故障,觸發主備切換動作
sentinel monitor mymaster 127.0.0.1 6379 2
# 指定多少毫秒之后 主節點沒有應答哨兵sentinel 此時 哨兵主觀上認為主節點下線 默認30
sentinel down-after-milliseconds mymaster 30000
# 主備切換時,多少個從服務器同步更新數據,數值越小越好
sentinel parallel-syncs mymaster 1
# 故障轉移的超時時間 failover-timeout 可以用在以下這些方面: 
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
#2. 當一個slave從一個錯誤的master那里同步數據開始計算時間。直到slave被糾正為向正確的master那里同步數據時。
#3.當想要取消一個正在進行的failover所需要的時間。 
#4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規則來了
# 默認三分鍾
sentinel failover-timeout mymaster 180000
 
從配置文件(6380)
# 配置 sentinel 端口號
port 26380
# 以守護進程啟動
daemonize yes
# 綁定只在本地使用
bind 127.0.0.1
# 日志文件名稱
logfile "sentinel_26380.log"
# 日志文件存放地址
dir "./"
# 監控 master 名字叫做 mymaster,地址是 127.0.0.1 端口號是 63791 表示有幾個 sentinel 認為該 master 出現故障,觸發主備切換動作
sentinel monitor mymaster 127.0.0.1 6379 2
# 指定多少毫秒之后 主節點沒有應答哨兵sentinel 此時 哨兵主觀上認為主節點下線 默認30
sentinel down-after-milliseconds mymaster 30000
# 主備切換時,多少個從服務器同步更新數據,數值越小越好
sentinel parallel-syncs mymaster 1
# 故障轉移的超時時間 failover-timeout 可以用在以下這些方面: 
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
#2. 當一個slave從一個錯誤的master那里同步數據開始計算時間。直到slave被糾正為向正確的master那里同步數據時。
#3.當想要取消一個正在進行的failover所需要的時間。 
#4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規則來了
# 默認三分鍾
sentinel failover-timeout mymaster 180000
 
從配置文件(6381)
# 配置 sentinel 端口號
port 26381
# 以守護進程啟動
daemonize yes
# 綁定只在本地使用
bind 127.0.0.1
# 日志文件名稱
logfile "sentinel_26381.log"
# 日志文件存放地址
dir "./"
# 監控 master 名字叫做 mymaster,地址是 127.0.0.1 端口號是 63791 表示有幾個 sentinel 認為該 master 出現故障,觸發主備切換動作
sentinel monitor mymaster 127.0.0.1 6379 2
# 指定多少毫秒之后 主節點沒有應答哨兵sentinel 此時 哨兵主觀上認為主節點下線 默認30
sentinel down-after-milliseconds mymaster 30000
# 主備切換時,多少個從服務器同步更新數據,數值越小越好
sentinel parallel-syncs mymaster 1
# 故障轉移的超時時間 failover-timeout 可以用在以下這些方面: 
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
#2. 當一個slave從一個錯誤的master那里同步數據開始計算時間。直到slave被糾正為向正確的master那里同步數據時。
#3.當想要取消一個正在進行的failover所需要的時間。 
#4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規則來了
# 默認三分鍾
sentinel failover-timeout mymaster 180000
 
5. 啟動三哨兵
分別啟動sentinel-26379.conf,sentinel-26380.conf ,sentinel-26381.conf
啟動命令分別如下:
redis-server.exe sentinel-26379.conf --sentinel
redis-server.exe sentinel-26380.conf --sentinel
redis-server.exe sentinel-26381.conf --sentinel
 
啟動后界面
 
6.驗證主從服務切換
場景:當主服務master6379宕機,剩下兩個從服其中一個替換為新的master
 
 
 
主從切換驗證成功!
如果原來的Master6379又恢復了,理論上他不能成為master,就變成slave,驗證步驟
1,恢復6379服務
查看各個服務信息
79服務信息
 
 
80服務信息
 
81服務信息
 
驗證成功!
 
7.驗證主從服務數據同步
場景:在master80上添加數據,如set name 'fans'
查看79和81從服能否查到name數據
 
 
驗證結果都可以查到,主從數據同步成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM