redis 哨兵機制環境搭建


Redis哨兵機制,一主二從

注:Redis哨兵切換,建議一主多從

一、一主二從

  教程步驟:https://www.cnblogs.com/zwcry/p/9046207.html

二、哨兵配置(sentinel.conf)

  cd /usr/local/redis-ms/  

  1.創建哨兵目錄

    mkdir -p ./sentinel/26001/tmp

    cp /usr/local/redis/sentinel.conf ./sentinel/26001/

  2.修改./sentinel/.conf

    cd /usr/local/redis-ms/sentinel/

    vim ./26001/sentinel.conf

    #修改如下鍵值對

    # bind 127.0.0.1 192.168.1.1#注釋掉或者值為0.0.0.0

    protected-mode no#關閉保護模式

    port 26001#端口號

    daemonize yes#后台運行

    dir /usr/local/redis-ms/sentinel/26001/tmp#解除掛載信息目錄

    sentinel monitor mymaster 192.168.194.131 6381 1#設置 主名稱 ip地址 端口號 參入選舉的哨兵數

    sentinel down-after-milliseconds mymaster 3000#sentinel心跳檢測主3秒內無響應,視為掛掉,開始切換其他從為主

    sentinel parallel-syncs mymaster 1#每次最多可以有1個從同步主。一個從同步結束,另一個從開始同步。

    sentinel failover-timeout mymaster 18000#主從切換超時時間

三、啟動哨兵配置

  1.先啟主從redis

    /usr/local/redis/src/redis-server /usr/local/redis-ms/6381/redis.conf

    /usr/local/redis/src/redis-server /usr/local/redis-ms/6382/redis.conf

    /usr/local/redis/src/redis-server /usr/local/redis-ms/6383/redis.conf

    ps -ef|grep redis

    如圖已經啟動

    

    且信息正確

    /usr/local/redis/src/redis-cli -p 6381

    info

    

   2.啟動哨兵

    /usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel/26001/sentinel.conf 

    ps -ef|grep redis

    如圖已經啟動

    

    且信息正確

    /usr/local/redis/src/redis-cli -p 26001

    info

     

  3.測試

    1)主6381停掉后變成從,原有的兩個從,有一個升級為主。

      /usr/local/redis/src/redis-cli -p 6381 shutdown

      /usr/local/redis/src/redis-cli -p 26001

      info

      

    2)6381再次啟動后,依然是從

      /usr/local/redis/src/redis-server /usr/local/redis-ms/6381/redis.conf

      /usr/local/redis/src/redis-cli -p 6381

      info

      

五、哨兵集群

  cd /usr/local/redis-ms/sentinel/

  1.復制26001

    cp -r 26001 26002

  2.修改26002/sentinel.conf

    vim 26002/sentinel.conf

    #將文本中26001替換為26002

    :%s/26001/26002/g

  3.啟動

    /usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel/26002/sentinel.conf

    info

    /usr/local/redis/src/redis-cli -p 26002

    

 

6.哨兵開機啟動

  注:redis開機啟動參照https://www.cnblogs.com/zwcry/p/9046207.html  

  1.創建sh腳本目錄

    mkdir /usr/local/redis-ms/sentinel/script

    cd /usr/local/redis-ms/sentinel/script/

  2.編輯start.sh

    vim start.sh   

#!/bin/sh
/usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel/26001/sentinel.conf /usr/local/redis/src/redis-sentinel /usr/local/redis-ms/sentinel/26002/sentinel.conf

  3.編輯stop.sh

    vim stop.sh

#!/bin/sh
/usr/local/redis/src/redis-cli -p 26001 shutdown /usr/local/redis/src/redis-cli -p 26002 shutdown

  4.編輯restart.sh

    vim restart.sh   

#!/bin/sh systemctl stop redis-sentinel systemctl start redis-sentinel

  5.編寫redis-sentinel.service

    cd /usr/lib/systemd/system/

    vim redis-sentinel.service

[Unit] Description=redis-sentinel After=redis-ms.service [Service] Type=forking ExecStart=/usr/local/redis-ms/sentinel/script/start.sh ExecStop=/usr/local/redis-ms/sentinel/script/stop.sh ExecReload=/usr/local/redis-ms/sentinel/script/restart.sh [Install] WantedBy=multi-user.target

    #建議啟動redis服務后,再啟動哨兵  

  6.命令行

    改變權限

      chmod 777 redis-sentinel.service

      chmod 777 /usr/local/redis-ms/sentinel/script/*

    進程服務重加載

      systemctl daemon-reload

    開機啟動哨兵

      systemctl enable redis-sentinel.service

    啟動哨兵

      systemctl start redis-sentinel.service

    關閉哨兵

      systemctl stop redis-sentinel.service

    重啟哨兵

      systemctl restart redis-sentinel.service

備注:哨兵集群服務自主關聯響應,如果需要更多哨兵集群,按照26002的方式復制26003...26006即可

  
  

    


免責聲明!

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



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