一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Redis - Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

2021-11-30 16:53Jiangxl~ Redis

集群收縮的源端就是要下線的主節(jié)點(diǎn),目標(biāo)端就是在線的主節(jié)點(diǎn),這篇文章主要介紹了Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程,需要的朋友可以參考下

Redis Cluster集群收縮主從節(jié)點(diǎn)

 

1.Cluster集群收縮概念

當(dāng)項(xiàng)目壓力承載力過高時(shí),需要增加節(jié)點(diǎn)來(lái)提高負(fù)載,當(dāng)項(xiàng)目壓力不是很大時(shí),也希望能夠?qū)⒓菏湛s下來(lái),給其他項(xiàng)目使用,這就要用到集群收縮了

集群收縮操作和集群擴(kuò)容是一樣的,只需要把方向反過來(lái)即可。

擴(kuò)容的時(shí)候執(zhí)行一次命令就可以實(shí)現(xiàn)槽位遷移成功,而收縮的時(shí)候有幾個(gè)主節(jié)點(diǎn)就需要執(zhí)行多少次,比如除去要下線的節(jié)點(diǎn),還有3個(gè)主節(jié)點(diǎn),那么就需要執(zhí)行三次,填寫遷移出槽位的數(shù)量也需要除以3,每個(gè)節(jié)點(diǎn)也需要平均分配。

收縮的時(shí)候首先要填寫分出多少個(gè)槽位,然后填寫要分給誰(shuí),最后填寫從哪分出槽位,一般分多少個(gè)槽位,就需要看要下線的主機(jī)上有多少個(gè)槽位,然后除以集群主節(jié)點(diǎn)數(shù),使每一個(gè)主機(jī)點(diǎn)分到的槽位都是相同的,填寫要分配給誰(shuí)的時(shí)候,第一次填寫第一個(gè)主節(jié)點(diǎn)的ID,第二次填寫第二個(gè)主節(jié)點(diǎn)的ID,最后填寫提供槽位的節(jié)點(diǎn)ID,就是下線節(jié)點(diǎn)的ID號(hào)。

集群收縮擴(kuò)容槽位的時(shí)候不會(huì)影響數(shù)據(jù)的使用。

集群收縮的源端就是要下線的主節(jié)點(diǎn),目標(biāo)端就是在線的主節(jié)點(diǎn)(分配給誰(shuí)的節(jié)點(diǎn))。
咱們要清楚一點(diǎn),只有主節(jié)點(diǎn)是有槽位的,因此呢需要將主節(jié)點(diǎn)的槽位分配給其他主節(jié)點(diǎn),當(dāng)槽位清空后,這個(gè)主機(jī)節(jié)點(diǎn)就可以下線了。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

收縮集群前后對(duì)比圖

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

集群收縮操作步驟:

? 1.執(zhí)行reshard命令將需要下線的主節(jié)點(diǎn)進(jìn)行槽位分散。

? 2.有幾個(gè)主節(jié)點(diǎn)就需要執(zhí)行幾次reshard命令,首先填寫要分出的槽位數(shù),然后填寫分給誰(shuí),最后填寫從哪里分。

? 3.當(dāng)槽位分散完成后,要下線的主節(jié)點(diǎn)沒有任何數(shù)據(jù)時(shí),將節(jié)點(diǎn)從集群中刪除。

集群信息

目前集群時(shí)四主四從共8個(gè)節(jié)點(diǎn),我們需要將集群改為三主三從,收縮出兩個(gè)節(jié)點(diǎn)給其他程序使用。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

2.將6390主節(jié)點(diǎn)從集群中收縮

 

2.1.計(jì)算需要分給每一個(gè)節(jié)點(diǎn)的槽位數(shù)

可以看到6390節(jié)點(diǎn)上有4096個(gè)槽位,刪除要下線的6390節(jié)點(diǎn)后,我們還有3個(gè)主節(jié)點(diǎn),4096除3得到1365,分配槽位的時(shí)候給每個(gè)節(jié)點(diǎn)分配1365個(gè)槽位即可均勻。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

2.2.分配1365個(gè)槽位給192.168.81.210的6380節(jié)點(diǎn)

我們需要將192.168.81.240的6390節(jié)點(diǎn)分出1365個(gè)槽位給192.168.81.210的6380節(jié)點(diǎn)。

只需要把What is the receiving node ID填寫成192.168.81.210的6380節(jié)點(diǎn)ID即可,指的是分配出來(lái)的槽位要給誰(shuí)。

然后source node填寫192.168.81.240的6390節(jié)點(diǎn)的ID,這里指的是從哪個(gè)節(jié)點(diǎn)上分出1365個(gè)槽位,填寫ID后,回車后會(huì)提示還要從哪個(gè)節(jié)點(diǎn)上分配槽位,因?yàn)橹挥?390需要分出槽位,所以在這里填寫done,表示只有這個(gè)一個(gè)節(jié)點(diǎn)分出1365個(gè)槽位給其他節(jié)點(diǎn)。

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1365				#分配出多少個(gè)槽位

What is the receiving node ID? 80e256579658eb256c5b710a3f82c439665794ba				#將槽位分給那個(gè)節(jié)點(diǎn)

Please enter all the source node IDs.
  Type "all" to use all the nodes as source nodes for the hash slots.
  Type "done" once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#從哪個(gè)節(jié)點(diǎn)分出槽位
Source node #2:done

Do you want to proceed with the proposed reshard plan (yes/no)? yes			#輸入yes繼續(xù)

下面是收縮節(jié)點(diǎn)的過程截圖。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

數(shù)據(jù)遷移過程。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

槽位分出遷移成功。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

2.3.分配1365個(gè)槽位給192.168.81.220的6380節(jié)點(diǎn)

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1365				#分配出多少個(gè)槽位

What is the receiving node ID? 10dc7f3f9a753140a8494adbbe5a13d0026451a1				#將槽位分給那個(gè)節(jié)點(diǎn)

Please enter all the source node IDs.
  Type "all" to use all the nodes as source nodes for the hash slots.
  Type "done" once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#從哪個(gè)節(jié)點(diǎn)分出槽位
Source node #2:done

Do you want to proceed with the proposed reshard plan (yes/no)? yes			#輸入yes繼續(xù)

收縮過程截圖展示。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程
Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程
Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

2.4.分配1365個(gè)槽位給192.168.81.230的6380節(jié)點(diǎn)

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb reshard 192.168.81.210:6380
How many slots do you want to move (from 1 to 16384)? 1366				#分配出多少個(gè)槽位

What is the receiving node ID? a4381138fdc142f18881b7b6ca8ae5b0d02a3228				#將槽位分給那個(gè)節(jié)點(diǎn)

Please enter all the source node IDs.
  Type "all" to use all the nodes as source nodes for the hash slots.
  Type "done" once you entered all the source nodes IDs.
Source node #1:6bee155f136f40e28e1f60c8ddec3b158cd8f8e8					#從哪個(gè)節(jié)點(diǎn)分出槽位
Source node #2:done

Do you want to proceed with the proposed reshard plan (yes/no)? yes			#輸入yes繼續(xù)

收縮過程截圖展示。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程
Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

當(dāng)最后一個(gè)節(jié)點(diǎn)遷移完數(shù)據(jù)后,6390主節(jié)點(diǎn)槽位數(shù)變?yōu)?。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

2.5.查看當(dāng)前集群槽位分配

槽位及數(shù)據(jù)已經(jīng)從6390即將下線的主機(jī)遷移完畢,可以看下當(dāng)前集群三個(gè)主節(jié)點(diǎn)的槽位數(shù)。

可以非常清楚的看到,現(xiàn)在每個(gè)主節(jié)點(diǎn)的槽位數(shù)為5461。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

如果覺得槽位重新分配后順序不太滿意,那么在執(zhí)行一下reshard,把其它節(jié)點(diǎn)的槽位都分給192.168.81.210的6380上,這樣一來(lái),210的6380擁有的槽位就是0-16383,然后在將210的槽位一個(gè)節(jié)點(diǎn)分給5461個(gè),分完之后,各節(jié)點(diǎn)的順序就一致了。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

3.驗(yàn)證數(shù)據(jù)遷移過程是否導(dǎo)致數(shù)據(jù)異常

多開幾個(gè)窗口,一個(gè)執(zhí)行數(shù)據(jù)槽位遷移,一個(gè)不斷創(chuàng)建key,一個(gè)查看key的創(chuàng)建進(jìn)度,一個(gè)查看key的數(shù)據(jù)。
持續(xù)測(cè)試,發(fā)現(xiàn)沒有任何數(shù)據(jù)異常,全部顯示ok。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

4.將下線的主節(jié)點(diǎn)從集群中刪除

 

4.1.刪除節(jié)點(diǎn)

使用redis-trib刪除一個(gè)節(jié)點(diǎn),如果這個(gè)節(jié)點(diǎn)存在復(fù)制關(guān)系,有節(jié)點(diǎn)在復(fù)制當(dāng)前節(jié)點(diǎn)或者當(dāng)前節(jié)點(diǎn)復(fù)制別的節(jié)點(diǎn)的數(shù)據(jù),redis-trib會(huì)自動(dòng)處理復(fù)制關(guān)系,然后將節(jié)點(diǎn)刪除,節(jié)點(diǎn)刪除后會(huì)把對(duì)應(yīng)的進(jìn)程也停止運(yùn)行。

刪除節(jié)點(diǎn)之前必須確保該節(jié)點(diǎn)沒有任何槽位和數(shù)據(jù),否則會(huì)刪除失敗。

命令:./redis-trib.rb del-node 節(jié)點(diǎn)IP:端口 ID

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.240:6390 6bee155f136f40e28e1f60c8ddec3b158cd8f8e8
>>> Removing node 6bee155f136f40e28e1f60c8ddec3b158cd8f8e8 from cluster 192.168.81.240:6390
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.240:6391 f6b9320dfbc929ad5a31cdb149360b0fd8de2e60
>>> Removing node f6b9320dfbc929ad5a31cdb149360b0fd8de2e60 from cluster 192.168.81.240:6391
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

4.2.調(diào)整主從交叉復(fù)制

刪掉192.168.81.240服務(wù)器上的兩個(gè)redis節(jié)點(diǎn)后,192.168.81.210服務(wù)器上的6380就沒有了復(fù)制關(guān)系,我們需要把192.168.81.230的6381節(jié)點(diǎn)復(fù)制192.168.81.210的6380節(jié)點(diǎn)。

[root@redis-1 ~]# redis-cli -h 192.168.81.230 -p 6381
192.168.81.230:6381> CLUSTER REPLICATE 80e256579658eb256c5b710a3f82c439665794ba
OK

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

4.3.當(dāng)節(jié)點(diǎn)存在數(shù)據(jù)無(wú)法刪除

[root@redis-1 /data/redis_cluster/redis-3.2.9/src]# ./redis-trib.rb del-node 192.168.81.220:6380 10dc7f3f9a753140a8494adbbe5a13d0026451a1
>>> Removing node 10dc7f3f9a753140a8494adbbe5a13d0026451a1 from cluster 192.168.81.220:6380
[ERR] Node 192.168.81.220:6380 is not empty! Reshard data away and try again.

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

 

5.將下線主機(jī)清空集群信息

redis-trib雖然能夠?qū)⒐?jié)點(diǎn)在集群中刪除,但是無(wú)法將其的集群信息清空,如果集群信息還有保留,那么該接地那就無(wú)法加入其它集群。

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

在下線的redis節(jié)點(diǎn)上使用cluster reset刪除集群信息即可。

192.168.81.240:6390> CLUSTER reset

OK

Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程

到此這篇關(guān)于Redis Cluster集群收縮主從節(jié)點(diǎn)詳細(xì)教程的文章就介紹到這了,更多相關(guān)Redis Cluster集群收縮內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/weixin_44953658/article/details/121465277

延伸 · 閱讀

精彩推薦
  • Redis詳解Redis復(fù)制原理

    詳解Redis復(fù)制原理

    與大多數(shù)db一樣,Redis也提供了復(fù)制機(jī)制,以滿足故障恢復(fù)和負(fù)載均衡等需求。復(fù)制也是Redis高可用的基礎(chǔ),哨兵和集群都是建立在復(fù)制基礎(chǔ)上實(shí)現(xiàn)高可用的...

    李留廣10222021-08-09
  • Redisredis實(shí)現(xiàn)排行榜功能

    redis實(shí)現(xiàn)排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來(lái)實(shí)現(xiàn)排行榜功能,本文就來(lái)簡(jiǎn)單的介紹一下如何使用,具有一定的參考價(jià)值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • RedisRedis如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離詳解

    Redis如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離詳解

    Redis的主從架構(gòu),能幫助我們實(shí)現(xiàn)讀多,寫少的情況,下面這篇文章主要給大家介紹了關(guān)于Redis如何實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離的相關(guān)資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • RedisRedis 事務(wù)知識(shí)點(diǎn)相關(guān)總結(jié)

    Redis 事務(wù)知識(shí)點(diǎn)相關(guān)總結(jié)

    這篇文章主要介紹了Redis 事務(wù)相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友...

    xiaojin21cen10152021-07-27
  • RedisRedis全量復(fù)制與部分復(fù)制示例詳解

    Redis全量復(fù)制與部分復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Redis全量復(fù)制與部分復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Redis爬蟲具有一定的參考學(xué)習(xí)...

    豆子先生5052019-11-27
  • RedisRedis的配置、啟動(dòng)、操作和關(guān)閉方法

    Redis的配置、啟動(dòng)、操作和關(guān)閉方法

    今天小編就為大家分享一篇Redis的配置、啟動(dòng)、操作和關(guān)閉方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧 ...

    大道化簡(jiǎn)5312019-11-14
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格詳解

    這篇文章主要給大家介紹了關(guān)于redis中如何使用lua腳本讓你的靈活性提高5個(gè)逼格的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具...

    一線碼農(nóng)5812019-11-18
主站蜘蛛池模板: 日韩精品视频美在线精品视频 | 精品高潮呻吟99AV无码视频 | 国内老司机精品视频在线播出 | 6080伦理久久精品亚洲 | 娇小8一12xxxx第一次 | 69老司机亚洲精品一区 | 精品一区二区三区 不卡高清 | 欧美8x8x | 欧美老人与小伙子性生交 | 国产亚洲人成网站天堂岛 | 我的好妈妈7中字在线观看韩国 | 亚洲国产精品综合一区在线 | 日本免费观看的视频在线 | 午夜dj免费视频观看社区 | 操美女 | 激情婷婷综合久久久久 | 蜜桃在线| 成人在线播放 | 91精品综合久久久久m3u8 | 欧美日韩一区二区综合在线视频 | 99热在线只有精品 | 闺蜜的样子小说安沁在线阅读 | pregnant欧美孕交xxx | 亚洲精品在线看 | 天天综合天天综合 | 天天色综合6| 久久毛片基地 | 国产亚洲精品第一综合另类 | 二次元美女挤奶漫画 | 亚洲天堂网站 | 国产乱人乱精一区二区视频密 | 美女靠逼免费网站 | 免费的毛片视频 | 黑人巨茎大战欧美白妇 | www.91在线视频| 无人区乱码区1卡2卡三卡在线 | 国产精品午夜国产小视频 | 77色视频在线 | 风间由美m3u8在线 | 精品国产91久久久久久久 | 喜欢老头吃我奶躁我的动图 |