1. 程式人生 > >Redis新節點新增以及插槽的移動

Redis新節點新增以及插槽的移動

在redis叢集建立成功的情況下,具體叢集搭建步驟請參考:http://blog.csdn.net/muyundefeng/article/details/52688192

增加新的節點:首先還是要啟動一個新的redis例項,然後啟動一個redis客戶端連結該資料庫例項,執行CLUSTER MEET IP PORT(其中ip與port是叢集節點中任意一個數據庫例項的ip地址與埠號) 移動插槽與增加插槽:在一個叢集中所有的鍵被分配到16384個插槽中,每個master資料庫會負責其中一部分插槽. 可以用redis客戶端端連結叢集中的任意一個節點,執行CLUSTER SLOTS命令,可以檢視插槽的分配情況.主要的輸出資訊如下:
127.0.0.1:6385> cluster slots 1) 1) (integer) 10923   2) (integer) 16383   3) 1) "127.0.0.1"   2) (integer) 6380(master)   3) "bc2056a9e64f65caa451cf4404772af9e2eff156"   4) 1) "127.0.0.1"   2) (integer) 6382(slave)   3) "83a96bbde18be00bbd96581ded45992e2ff9a2eb" 2) 1) (integer) 5461   2) (integer) 10922   3) 1) "127.0.0.1"
  2) (integer) 6384   3) "1fa40cda2140855839f05d2752524590d93c173f"(節點ID)   4) 1) "127.0.0.1"   2) (integer) 6383   3) "970509b2acb5404e2c75b99c3c449b7ed3abef50" 3) 1) (integer) 0   2) (integer) 5460   3) 1) "127.0.0.1"   2) (integer) 6379   3) "d19a31472a3effd985dd0ea12c738b6fdc4658d6"   4) 1) "127.0.0.1"   2) (integer) 6381
  3) "5893ac0af872bc3e0b3ae93bd8def3b7bd00f828" 一共包含三條記錄其中每一條記錄的第一條資訊是其實插槽的編號,第二條資訊是結束插槽的編號.如果想要把插槽從6379移動到6384,使用 ruby redis-trib.rb reshard 127.0.0.1:6379 對6379的節點的插槽進行重新分配,命令彈出:What is the receiving node ID?輸入接受節點的id,然後輸入all. 在檢視叢集的插槽分配情況如下: 1) 1) (integer) 10923   2) (integer) 16383   3) 1) "127.0.0.1"   2) (integer) 6380   3) "bc2056a9e64f65caa451cf4404772af9e2eff156"   4) 1) "127.0.0.1"   2) (integer) 6382   3) "83a96bbde18be00bbd96581ded45992e2ff9a2eb" 2) 1) (integer) 0   2) (integer) 0   3) 1) "127.0.0.1"   2) (integer) 6384   3) "1fa40cda2140855839f05d2752524590d93c173f"   4) 1) "127.0.0.1"   2) (integer) 6383   3) "970509b2acb5404e2c75b99c3c449b7ed3abef50" 3) 1) (integer) 5461   2) (integer) 10922   3) 1) "127.0.0.1"   2) (integer) 6384   3) "1fa40cda2140855839f05d2752524590d93c173f"   4) 1) "127.0.0.1"   2) (integer) 6383   3) "970509b2acb5404e2c75b99c3c449b7ed3abef50" 4) 1) (integer) 1   2) (integer) 5460   3) 1) "127.0.0.1"   2) (integer) 6379   3) "d19a31472a3effd985dd0ea12c738b6fdc4658d6"   4) 1) "127.0.0.1"   2) (integer) 6381   3) "5893ac0af872bc3e0b3ae93bd8def3b7bd00f828"