51的內容長度限制,這裏繼續 redis cluster 的簡單使用和維護。node
7,下面簡單測試一下 cluster
7.1 測試數據分佈git
使用 redis-cli 來測試 cluster shard,能夠看到 foo->bar 被存儲到了 7002 節點上,而且自動跳轉到了 7002 上,而後 7002 上 hello-world 是存儲在 7000 上,再次重定向到 7000 節點上了。
github
1redis 2ide 3工具 4測試 5spa 6debug 73d 8 9 10 11 12 13 14 15 |
|
7.2 reshard
從新分佈,這裏測試reshard 1000 個 slots 到 7000 節點的情形:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
7.3 failover 測試(這裏沒有作一致性檢查,只是看一下是否 master-slave 作了切換)
首先經過 debug segfault 命令中止了 7002 節點(從上面的運行日誌中,能夠看到該節點爲 master 節點)
1 2 3 4 5 6 7 8 9 10 |
|
而後從 cluster nodes 命令輸出能夠看到 7002 節點 fail,同時它的 slave 7005 節點升級爲了 master 節點
1 2 3 4 5 6 7 8 |
|
把 7002 節點再次啓動後,7002 節點自動成爲了 7005 節點的 slave 節點
1 2 3 4 5 6 7 8 |
|
7.4 新增節點
7.4.1 新增 master 節點
默認是新增一個 master 節點,一樣的,這裏測試是先新增 7006/ 目錄,再編輯 redis.conf 配置文件
在 7006 目錄下啓動 7006 節點 redis-server redis.conf
下面經過 redis-trib 工具在當前的 cluster 中新增 7006 節點
1 2 3 4 5 6 7 8 9 |
|
此時,7006 節點已經加入 cluster,能夠接收客戶端的指令,並執行 redirection
7.4.2 新增 slave 節點
有兩種方式來添加 slave 節點:
1) 經過 --slave 選項添加 slave 節點,這裏以新增的 7007 節點做爲 7005(當前已經爲master節點)的 slave 節點爲例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
2) 經過 cluster replicate 命令來添加 slave 節點,以下:
1 2 |
|
---------
7.4 刪除節點
7.4.1 刪除 slave 節點
對於刪除 slave 節點,能夠直接使用 redis-trib 的 del-node 命令來刪除,如:
1 |
|
node-id 爲待刪除的slave節點的 NodeID。
7.4.2 刪除 master 節點 也可使用 del-node 命令來刪除 master 節點,可是必須爲空,所以須要在刪除 master 節點以前先經過 reshard 將數據遷移至其餘的 master 節點上。 固然也可使用上面的 CLUSTER FAILOVER 命令來刪除 master 節點,並選擇一個 slave 做爲新的 master 節點。