Redis cluster日常管理【二】
生活随笔
收集整理的這篇文章主要介紹了
Redis cluster日常管理【二】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面在Redis集群架構搭建詳解博文中搭建了一個redis集群,這篇博文就是在那個redis集群基礎上進行操作的。
一、添加新節點
①新增配置
# cd /redis/ # mkdir 6379 6380 # cp 26379/redis-26379.conf 6379/redis-6379.conf && sed -i "s/26379/6379/g" 6379/redis-6379.conf # cp 26380/redis-26380.conf 6380/redis-6380.conf && sed -i "s/26380/6380/g" 6380/redis-6380.conf②啟動
# /root/redis-4.0.11/src/redis-server /redis/6380/redis-6380.conf # /root/redis-4.0.11/src/redis-server /redis/6379/redis-6379.conf③查看是否啟動成功
# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 10.220.5.172:16380 *:* LISTEN 0 128 10.220.5.172:36380 *:* LISTEN 0 128 10.220.5.172:6379 *:* LISTEN 0 128 10.220.5.172:26379 *:* LISTEN 0 128 10.220.5.172:6380 *:* LISTEN 0 128 10.220.5.172:26380 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 10.220.5.172:16379 *:* LISTEN 0 128 10.220.5.172:36379 *:* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::*① 在10.220.5.173節點執行如下命令
# /root/redis-4.0.11/src/redis-trib.rb add-node 10.220.5.172:6379 10.220.5.171:16379說明:10.220.5.172:6379是新增節點,后面的可以是集群中任意一個舊節點>>> Adding node 10.220.5.172:6379 to cluster 10.220.5.171:16379 >>> Performing Cluster Check (using node 10.220.5.171:16379) M: 56d2348f3eb66f669405b8064fb8c068cca94105 10.220.5.171:16379slots:0-5460 (5461 slots) master1 additional replica(s) M: 93a37f72f33752779183d70835a101c086bbad01 10.220.5.172:26379slots:5461-10922 (5462 slots) master1 additional replica(s) S: 2c978644384445bf1bdfd3ed2b585f949f574f63 10.220.5.172:26380slots: (0 slots) slavereplicates 56d2348f3eb66f669405b8064fb8c068cca94105 S: 8540a124e3a876ad2357d6bd10e09091612b3291 10.220.5.173:36380slots: (0 slots) slavereplicates 93a37f72f33752779183d70835a101c086bbad01 S: 35c6cc6fb84b3c1a76e4f225bb8477f519abb559 10.220.5.171:16380slots: (0 slots) slavereplicates 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc M: 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc 10.220.5.173:36379slots:10923-16383 (5461 slots) master1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 10.220.5.172:6379 to make it join the cluster. [OK] New node added correctly.②檢查一下是否加入成功
# redis-4.0.11/src/redis-trib.rb check 10.220.5.172:26379 >>> Performing Cluster Check (using node 10.220.5.172:26379) M: 93a37f72f33752779183d70835a101c086bbad01 10.220.5.172:26379slots:5461-10922 (5462 slots) master1 additional replica(s) S: 8540a124e3a876ad2357d6bd10e09091612b3291 10.220.5.173:36380slots: (0 slots) slavereplicates 93a37f72f33752779183d70835a101c086bbad01 S: 2c978644384445bf1bdfd3ed2b585f949f574f63 10.220.5.172:26380slots: (0 slots) slavereplicates 56d2348f3eb66f669405b8064fb8c068cca94105 M: f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6379slots: (0 slots) master0 additional replica(s) M: 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc 10.220.5.173:36379slots:10923-16383 (5461 slots) master1 additional replica(s) M: 56d2348f3eb66f669405b8064fb8c068cca94105 10.220.5.171:16379slots:0-5460 (5461 slots) master1 additional replica(s) S: 35c6cc6fb84b3c1a76e4f225bb8477f519abb559 10.220.5.171:16380slots: (0 slots) slavereplicates 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 可以看到10.220.5.172:6379已經加入到了集群中并且還是主節點其id為:f523db5333150607a347fa9e55a282bcbe67b5aa①在10.220.5.173節點執行如下命令
# /root/redis-4.0.11/src/redis-trib.rb add-node --slave --master-id f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6380 10.220.5.171:16380說明:--slave,表示添加的是從節點 --master-id,后面跟的是主節點的node-d這里是簽名上一步添加的那個6379的node id 10.220.5.172:6380,是即將添加入集群的節點,最后面的是原集群的任意一個節點即可>>> Adding node 10.220.5.172:6380 to cluster 10.220.5.171:16380 >>> Performing Cluster Check (using node 10.220.5.171:16380) S: 35c6cc6fb84b3c1a76e4f225bb8477f519abb559 10.220.5.171:16380slots: (0 slots) slavereplicates 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc M: 93a37f72f33752779183d70835a101c086bbad01 10.220.5.172:26379slots:5461-10922 (5462 slots) master1 additional replica(s) S: 8540a124e3a876ad2357d6bd10e09091612b3291 10.220.5.173:36380slots: (0 slots) slavereplicates 93a37f72f33752779183d70835a101c086bbad01 S: 2c978644384445bf1bdfd3ed2b585f949f574f63 10.220.5.172:26380slots: (0 slots) slavereplicates 56d2348f3eb66f669405b8064fb8c068cca94105 M: 56d2348f3eb66f669405b8064fb8c068cca94105 10.220.5.171:16379slots:0-5460 (5461 slots) master1 additional replica(s) M: 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc 10.220.5.173:36379slots:10923-16383 (5461 slots) master1 additional replica(s) M: f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6379slots: (0 slots) master0 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 10.220.5.172:6380 to make it join the cluster. Waiting for the cluster to join....... >>> Configure node as replica of 10.220.5.172:6379. [OK] New node added correctly.新增加的節點是沒有slots的M: f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6379 slots: (0 slots) master主節點沒有slots存取數據的時候就不會被選中,為其分配slots的方式有兩種:
- 所有節點的slots收回重新分配
- 從某個節點抽取部分slots分配給新節點
①在10.220.5.173節點執行下面命令
# /root/redis-4.0.11/src/redis-trib.rb reshard 10.220.5.172:6379 How many slots do you want to move (from 1 to 16384)? 1000 >>>設置slot個數 What is the receiving node ID? f523db5333150607a347fa9e55a282bcbe67b5aa >>>新節點的node id 這里就是那個新添加的10.220.5.172:6379的node id Source node #1:all >>>表示全部節點重新分配槽,此處輸入某節點的node id的話表示從某個節點抽取slots分配給新節點 Do you want to proceed with the proposed reshard plan (yes/no)? yes >>>確認重新分配二、刪除節點
刪除從節點,10.220.5.172:6380
# /root/redis-4.0.11/src/redis-trib.rb del-node 10.220.5.171:16379 76b5218ca0729fbe305c65a8a4aefae4462a58fc說明: 10.220.5.171:16379,集群入口76b5218ca0729fbe305c65a8a4aefae4462a58fc,要刪除的10.220.5.176:6380節點的node id>>> Removing node 76b5218ca0729fbe305c65a8a4aefae4462a58fc from cluster 10.220.5.172:6380 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node.刪除主節點,10.220.5.172:6379
如果主節點有從節點,將從節點轉移到其他主節點,如果主節點有slot,去掉分配的slot然后再刪除主節點
做到這里開篇新添加的一個master和一個slave節點都被刪除了,也就是回到這篇博文開始沒有添加節點的狀態了。
總結
以上是生活随笔為你收集整理的Redis cluster日常管理【二】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis cluster日常管理【一】
- 下一篇: Ansible简单介绍及安装部署详解