一、redis搭建主從複制
目的:,但是無法解決
資料備份
主節點的自動故障轉移
- 準備四台機器,一台主機,三台從機【為哨兵機制的搭建做準備】
- 主節點、從節點、另一個從節點配置redis.conf
# 1.從節點設定:
slaveof masterIp masterPort
slaveof 192.168.75.110 7000
# 2.更改守護程序【背景】
daemonize yes
# 3.更改遠端通路權限,每一台機器都要配置
bind 0.0.0.0
# 4.更改端口是為了辨識度,不進行更改也是可以的
示例:
# 1.主機點 master
port 7000
bind 0.0.0.0
# salve1
port 7002
bind 0.0.0.0
slaveof 192.168.75.240 7000
# salve2
port 7003
bind 0.0.0.0
slaveof 192.168.75.240 7000
# salve3
port 7004
bind 0.0.0.0
slaveof 192.168.75.240 7000
實操:
# 從源碼中copy redis的配置檔案
cp /usr/redis/redis-4.0.10/redis.conf /usr/redis/
# 修改配置檔案
vim /usr/redis/redis.conf

找到配置檔案中的slave of 位置 底線指令模式下輸入 /slave 進行搜尋
/slave
修改主節點ip 和 端口
其他兩個節點做相同的操作。
注意:主節點不需要指定slave of
依次開啟redis服務,并加載配置檔案
# 進入指定目錄
cd /usr/redis/bin
# 開啟服務并加載配置檔案
./redis-server ../redis.conf
通路指定的ip的redis服務:
# 主機添加一個資訊
./redis-cli -h 192.168.75.240 -p 7000
# 轉到從機上檢視主從配置是否生效
在用戶端視窗中也可以輸入指令檢視主從複制資訊
info replication
二、哨兵機制
哨兵機制 sentinel,是redis的一個高可用性解決方案,有一個或者多個Sentinel執行個體組成的Sentinel系統可以監視多個主伺服器,以及這些主伺服器屬下的所有從伺服器,并在被監視的主伺服器進入下線狀态時,自動将下線的主伺服器屬下的從伺服器更新為新的主伺服器。簡單地說哨兵機制就是帶有自動故障轉移功能的主從架構。
搭建哨兵架構【 在主從複制的基礎上
】
在主從複制的基礎上
# 1.在主節點上建立哨兵機制
- 去redis解壓源碼中copysentinel.conf檔案到Master對應redis.conf同目錄下
cp /usr/redis/redis-4.0.10/sentinel.conf /usr/redis/
# 2.配置哨兵,在sentinel.conf中寫入一下内容
- sentinel monitor 被監控資料庫名字【自己命名】 ip port 1
vim /usr/redis/sentinel.conf
sentinel monitor mymaster 192.168.75.240 7000 1
sentinel monitor sentinel1 192.168.75.230 7002 2
sentinel monitor sentinel2 192.168.75.220 7003 3
sentinel monitor sentinel3 192.168.75.225 7004 4
# 3.啟動哨兵模式進行測試 [redis-sentinel ]
cd /usr/redis/bin/
./redis-sentinel ../sentinel.conf
# 預設心跳時間15s
測試哨兵
- 測試主從複制是否有效
Redis-主從複制_哨兵機制 - 殺死主節點redis程序,檢視日志選舉過程
Redis-主從複制_哨兵機制 - 7004被選舉成為新的主節點 ,7000被替換成從節點
Redis-主從複制_哨兵機制 Redis-主從複制_哨兵機制
至此,哨兵配置完成。
注意:
- 哨兵的配置是基于主從複制之上的,首先要保證的就是主從複制配置成功
- 哨兵(從機)的機器數量一定是單數,因為在主機宕掉之後哨兵要進行選舉,票多者被重新選為主機
- 哨兵的選舉是不可逆的。宕掉的主機重新開機之後也會永遠變為從機
哨兵機制無法解決:
單節點的
并發壓力
問題
單節點的
實體上限
問題
叢集的搭建很好地解決了這個問題。