【redis】深入理解redis cluster --- 擴容集群


擴容集群:

  ◆准備新節點

    新節點:

      。必須是集群模式

      。配置和其他節點統一,節點的配置請參照之前寫的“安裝cluster”篇里面有寫

      。啟動后是孤兒節點,就是沒有設置為主從節點

      。然后啟動節點:redis-server conf/redis-${port}.conf

      
  ◆加入集群

    。使用原生方法:

      

       進入客戶端中進行meet

    。使用redis-trib.rb加入集群:

            redis-trib.rb add-node new_host:new_port existing_host:existing_port --slave--master-id<arg>

            redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379

            建議使用redis-trib.rb能夠避免新節點已經加入其他集群,造成故障

  ◆遷移槽和數據

    。槽遷移計划:

       

    。遷移數據

      *步驟:

            1,對目標節點發送:cluster setslot {slot} importing {sourceNodeId}命令,讓目標節點准備導入槽的數據
            2,對源節點發送:cluster setslot {slot} migrating {targetNodeId}命令,讓源節點准備遷出槽的數據
            3,源節點循環執行cluster getkeysinslot {slot} {count}命令,每次獲取count個屬於槽的鍵
            4,在源節點上執行migrate {targetIp} {targetPort} key 0 {timeout} 命令把指定key遷移
            5,重復執行步驟3~4直到槽下所有的鍵數據遷移到目標節點
            6,向集群內所有主節點發送cluster setslot {slot} node {targetNodeId}命令,通知槽分配給目標節點

      *流程圖:

        

      *python操作的偽代碼:

        

      *使用redis-trib.rb來遷移數據:

            1,./redis-trib.rb reshard 127.0.0.1:7000
            2,執行了上面的命令后會出現提示問你需要遷移多少個槽,這個數量是拿16384/加入新節點的總個數
            3,2的步驟執行完之后,它又會問你希望那個ID接受的給那個ID,你就填寫你要加入的節點ID即可
            4,執行完3填入 all 回車即可
            5,這樣就完成了

 

      

 

      

 

        

 


免責聲明!

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



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