詳解Centos7 安裝redis集羣哨兵模式

一、整體哨兵模式規劃

redis節點規劃:6381 (master), 6382 (slave),6383 (slave),6384 (slave)
sentinel模式節點規劃:26381 , 26382

二、Redis主從安裝步驟

1、 Redis安裝
2、在/usr/local/目錄下創建 redis-sentinel文件夾

在這裏插入圖片描述

3、進入/usr/local/redis-sentinel目錄下,創建文件夾 master-6381 ,slave-6382 ,slave-6383 ,slave-6384 ,sentinel-26381 ,sentinel-26382

如圖所示:
在這裏插入圖片描述

4、把單機版安裝目錄下redis.conf拷貝到目錄下 master-6381 slave-6382 slave-6383 slave-6384

在這裏插入圖片描述

5、把單機版安裝目錄下 sentinel.conf 拷貝到 sentinel-26381 ,sentinel-26382

在這裏插入圖片描述

6、修改/usr/local/redis-sentinel/master-6381/目錄下 redis.conf 配置文件 (主服務器)
  • bind 192.168.1.62 --修改成自己的IP地址
  • port 6381 --主服務器的端口號
  • daemonize yes --後臺啓動
  • pidfile /var/run/redis_6381.pid – redis 後臺啓動的時候,會在/var/run/默認生成一個pid文件
  • protected-mode no–保護模式關閉,否則啓動哨兵的時候,無法正常運行(還可以設置密碼的方式)
  • dir /usr/local/redis-sentinel/master-6381/data --數據保存目錄
7、修改/usr/local/redis-sentinel/slave-6382/目錄下 redis.conf 配置文件 (從服務器)
  • bind 192.168.1.62 --修改成自己的IP地址
  • port 6382 --主服務器的端口號
  • daemonize yes --後臺啓動
  • pidfile /var/run/redis-6382.pid – redis 後臺啓動的時候,會在/var/run/默認生成一個pid文件
  • protected-mode no–保護模式關閉,否則啓動哨兵的時候,無法正常運行(還可以設置密碼的方式)
  • dir /usr/local/redis-sentinel/slave-6382/data --數據保存目錄
  • slaveof 192.168.1.62 6381 --主服務器的IP 主服務器端口號,這句命令 手動添加在配置文件中
8、其他從服務器類似步驟7
9、一定要注意創建data,否則會報錯
10、步驟9執行完後,就可以正常運行了
  #進入src目錄下,執行一下四條命令:
./redis-server  /usr/local/redis-sentinel/master-6381/redis.conf
./redis-server  /usr/local/redis-sentinel/slave-6382/redis.conf
./redis-server  /usr/local/redis-sentinel/slave-6383/redis.conf
./redis-server  /usr/local/redis-sentinel/slave-6384/redis.conf

查看進程:
在這裏插入圖片描述

11、啓動完成後,連接主服務器客戶端,查看主服務器信息 info
 #在src目錄下,-p是指定端口號
./redis-cli -h 192.168.1.62 -p 6381
 #進入以後輸入info
info

在這裏插入圖片描述

12、可以嘗試在主服務器節點上添加一個值,看看是否能同步到從服務器上去

在這裏插入圖片描述

三、在步驟二完成的基礎上添加哨兵監控主節點

1、修改/usr/local/redis-sentinel/sentinel-26381目錄下的sentinel.conf
  • port 26381 – 指定sentinel端口號
  • daemonize yes – 指定sentinel爲後臺啓動
  • protected-mode no --關閉保護模式
  • sentinel monitor mymaster [主服務器節點IP] [主服務器節點port] [幾個哨兵檢測到主節點失聯數量] – 至少有幾個哨兵檢測到主服務器故障了,才進行故障遷移 ,實例 sentinel monitor mymaster 192.168.1.62 6381 2
  • sentinel down-after-milliseconds mymaster 30000 --指定Sentinel判定Master斷線的時間
  • logfile “/usr/local/redis-sentinel/sentinel-26381/sentinel-26381.log”
  • dir “/usr/local/redis-sentinel/sentinel-26381/data”
2、修改/usr/local/redis-sentinel/sentinel-26382目錄下的sentinel.conf
  • port 26382 – 指定sentinel端口號
  • daemonize yes – 指定sentinel爲後臺啓動
  • protected-mode no --關閉保護模式
  • sentinel monitor mymaster [主服務器節點IP] [主服務器節點port] [幾個哨兵檢測到主節點失聯數量] – 至少有幾個哨兵檢測到主服務器故障了,才進行故障遷移 ,實例 sentinel monitor mymaster 192.168.1.62 6381 2
  • sentinel down-after-milliseconds mymaster 30000–指定Sentinel判定Master斷線的時間
  • logfile “/usr/local/redis-sentinel/sentinel-26382/sentinel-26382.log”
  • dir “/usr/local/redis-sentinel/sentinel-26382/data”
3、啓動哨兵,並查看哨兵日誌
#進入src目錄下
#啓動哨兵(可通過查看進程判斷是否啓動  ps -ef | grep sen)
./redis-sentinel  /usr/local/redis-sentinel/sentinel-26381/sentinel.conf 
./redis-sentinel  /usr/local/redis-sentinel/sentinel-26382/sentinel.conf
#查看日誌
tail -f /usr/local/redis-sentinel/sentinel-26381/sentinel-26381.log 
tail -f /usr/local/redis-sentinel/sentinel-26382/sentinel-26382.log  
4、直接把master節點進程kill掉,再次觀看哨兵日誌

在殺掉主節點進程的時候,沒有發生主從切換,並且日誌打印如下,解決方法時 在sentinel.conf配置文件中添加 protected-mode no (這個的前提是redis.conf文件的配置也是 protected-mode no )
在這裏插入圖片描述

5、解決4的問題後,重新啓動sentinel,殺掉主節點進程和查看sentinel日誌
  1. 主節點從6381變成6384
    在這裏插入圖片描述
  2. 把節點6384的進程殺掉,主節點變成6382了
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章