天天看點

redis叢集如何解決重新開機不了的問題

redis使用叢集部署,如果遇到斷電或者伺服器重新開機,當再次啟動的時候,有時候會啟動不了。需要使用trib的fix指令進行修複。如果修複還是不行的話,可以清除節點資料再重建立叢集,前提要備份之後操作。

工具

  • linux
  • redis

方法/步驟

  1. 使用redis-cli連接配接上redis其中一台

    redis-cli -c -h xxx -p 7001

    輸入cluster info檢視目前叢集的狀态

    ​​​

    redis叢集如何解決重新開機不了的問題
    ​​
  2. 可以使用trib的check檢測的叢集狀态

    redis-trib.rb check xxx:7001

    [ERR] Not all 16384 slots are covered by nodes.

    ​​​

    redis叢集如何解決重新開機不了的問題
    ​​
  3. 如果出現以上的錯誤,可以嘗試使用fix指令修複

    redis-trib.rb fix xxx:7001

    修複完成之後,在使用trib的check指令檢視狀态

    ​​​

    redis叢集如何解決重新開機不了的問題
    ​​​​
    redis叢集如何解決重新開機不了的問題
    ​​
  4. 如果通過fix方式修複不了

    pkill redis停止之前的redis程序

    然後把aof,rdb,nodes節點檔案删除,删除之前需要備份

    ​​​

    redis叢集如何解決重新開機不了的問題
    ​​
  5. 然後啟動各個redis節點

    redis-server /usr/local/src/redis-3.2.4/redis_cluster/7000/redis.conf

    redis-server /usr/local/src/redis-3.2.4/redis_cluster/7001/redis.conf

    redis-server /usr/local/src/redis-3.2.4/redis_cluster/7002/redis.conf

    redis-server /usr/local/src/redis-3.2.4/redis_cluster/7003/redis.conf

    redis-server /usr/local/src/redis-3.2.4/redis_cluster/7004/redis.conf

    redis-server /usr/local/src/redis-3.2.4/redis_cluster/7005/redis.conf

    ​​​

    redis叢集如何解決重新開機不了的問題
    ​​​​​​
  6. 建立redis叢集

    redis-trib.rb create --replicas 1 xxx:7000 xxx:7001 xxx:7002 xxx:7003 xxx:7004 xxx:7005

    ​​​​​

  7. 叢集建立完成之後,再次連接配接redis檢視叢集狀态,如圖可以看到3主3從的redis服務已經啟動完成

    redis-cli -c -h xxx -p 7000

    cluster info

    cluster nodes

    ​​​​​END

注意事項

  • 如果是生成環境的叢集服務,不要輕易删除檔案,操作需要謹慎處理。備份一定要做好,防止出現意外。

繼續閱讀