1. 程式人生 > >Centos7 安裝redis叢集哨兵模式

Centos7 安裝redis叢集哨兵模式

一:整體哨兵模式規劃

redis節點規劃:6381 (master), 6382 (slave),6383 (slave),6384 (slave)

sentinel模式節點規劃:26381 , 26382

二: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執行完後,就可以正常運行了

/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/master-6381/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6382/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6383/redis.conf 
/usr/local/redis/bin/redis-server /usr/local/redis-sentinel/slave-6384/redis.conf 

10.啟動完成後,連線主伺服器客戶端,檢視主伺服器資訊 info

/usr/local/redis/bin/redis-cli -h 192.168.1.62 -p 6381

11.在主伺服器節點上新增一個值,看看是否能同步到從伺服器上去

三.在二完成的基礎上新增哨兵監控主節點

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.啟動哨兵,並檢視哨兵日誌

/usr/local/redis/src/redis-sentinel /usr/local/redis-sentinel/sentinel-26381/sentinel.conf 
/usr/local/redis/src/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了