redis 集群講解 (二 )動態(tài)擴容

1梆造、加入新master

在上篇基礎上增加
7007.conf,和一個redis_7007啟動腳本

redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7001

redis-trib.rb check 127.0.0.1:7001

out:

[root@1b0c5aafc62b init.d]# redis-trib.rb check 127.0.0.1:7001
>>> Performing Cluster Check (using node 127.0.0.1:7001)
M: 5f7f1ff4582dcd1a6cc66a9e636fe18bcacc7d4c 127.0.0.1:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 0e2a60a544a2d4441beb03224a07ad6c437363c6 127.0.0.1:7007
   slots: (0 slots) master
   0 additional replica(s)
M: be557259c0ea02517557931251df7120c00cd4c2 127.0.0.1:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 65e578ed3fe7d5947a4f9c621c8157ab6c1251b5 127.0.0.1:7006
   slots: (0 slots) slave
   replicates be557259c0ea02517557931251df7120c00cd4c2
S: 3cb4215cb614950f9e68be6a995bf98ea81d52a6 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 63035068bbbc1ee1df40a050d5d47b7779f86043
S: 210ae237bb73aa3c876eb9933a9926c575fba0cd 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 5f7f1ff4582dcd1a6cc66a9e636fe18bcacc7d4c
M: 63035068bbbc1ee1df40a050d5d47b7779f86043 127.0.0.1:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

發(fā)現(xiàn) 新加入的 master 沒有槽位

2葬毫、reshard一些數(shù)據(jù)過去

resharding的意思就是把一部分hash slot從一些node上遷移到另外一些node上

之前三個 master 每個 平均大概 5461 槽位

變成四個 每個master 4096 reshard 后輸入 4096

redis-trib.rb reshard 127.0.0.1:7001


[root@1b0c5aafc62b init.d]# redis-trib.rb reshard 127.0.0.1:7001
>>> Performing Cluster Check (using node 127.0.0.1:7001)
M: 5f7f1ff4582dcd1a6cc66a9e636fe18bcacc7d4c 127.0.0.1:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: 0e2a60a544a2d4441beb03224a07ad6c437363c6 127.0.0.1:7007
   slots: (0 slots) master
   0 additional replica(s)
M: be557259c0ea02517557931251df7120c00cd4c2 127.0.0.1:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 65e578ed3fe7d5947a4f9c621c8157ab6c1251b5 127.0.0.1:7006
   slots: (0 slots) slave
   replicates be557259c0ea02517557931251df7120c00cd4c2
S: 3cb4215cb614950f9e68be6a995bf98ea81d52a6 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 63035068bbbc1ee1df40a050d5d47b7779f86043
S: 210ae237bb73aa3c876eb9933a9926c575fba0cd 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 5f7f1ff4582dcd1a6cc66a9e636fe18bcacc7d4c
M: 63035068bbbc1ee1df40a050d5d47b7779f86043 127.0.0.1:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID? 0e2a60a544a2d4441beb03224a07ad6c437363c6
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:5f7f1ff4582dcd1a6cc66a9e636fe18bcacc7d4c
Source node #2:be557259c0ea02517557931251df7120c00cd4c2
Source node #3:63035068bbbc1ee1df40a050d5d47b7779f86043

輸入4096 然后輸入目標 的master ID 然后輸入 原始的 master Id (源頭)
輸入 done 結(jié)尾

3镇辉、添加node作為slave

增加 7008.conf,和一個redis_7008啟動腳本

mkdir -p /var/redis/7008

port 7008
cluster-enabled yes
cluster-config-file /etc/redis-cluster/node-7008.conf
cluster-node-timeout 15000
daemonize   yes                         
pidfile     /var/run/redis_7008.pid                         
dir         /var/redis/7008     
logfile /var/log/redis/7008.log
bind 127.0.0.1      
appendonly yes

增加slave

redis-trib.rb add-node --slave --master-id XXXXXXXX 127.0.0.1:7008 127.0.0.1:7001

我掛載到 新加入的master 上

redis-trib.rb add-node --slave --master-id 0e2a60a544a2d4441beb03224a07ad6c437363c6 127.0.0.1:7008 127.0.0.1:7001

4贴捡、刪除node

redis-trib.rb reshard  127.0.0.1:7001

先用resharding將數(shù)據(jù)都移除到其他節(jié)點忽肛,確保node為空之后,才能執(zhí)行remove操作

2個是1365烂斋,1個是1366

當你清空了一個master的hashslot時屹逛,redis cluster就會自動將其slave掛載到其他master上去

這個時候就只要刪除掉master就可以了

redis-trib.rb del-node 127.0.0.1:7001 be557259c0ea02517557931251df7120c00cd4c2

check 發(fā)現(xiàn) slove 自動轉(zhuǎn)移了

[root@1b0c5aafc62b /]# redis-trib.rb check 127.0.0.1:7001
>>> Performing Cluster Check (using node 127.0.0.1:7001)
M: 5f7f1ff4582dcd1a6cc66a9e636fe18bcacc7d4c 127.0.0.1:7001
   slots:1365-5460,13653-15017 (5461 slots) master
   1 additional replica(s)
M: 0e2a60a544a2d4441beb03224a07ad6c437363c6 127.0.0.1:7007
   slots:0-1364,5461-6826,10923-13652 (5461 slots) master
   1 additional replica(s)
S: 65e578ed3fe7d5947a4f9c621c8157ab6c1251b5 127.0.0.1:7006
   slots: (0 slots) slave
   replicates 63035068bbbc1ee1df40a050d5d47b7779f86043
S: 3cb4215cb614950f9e68be6a995bf98ea81d52a6 127.0.0.1:7005
   slots: (0 slots) slave
   replicates 63035068bbbc1ee1df40a050d5d47b7779f86043
S: f3f6a32fb58b4b734f2c90cfca64ad71c6acb83f 127.0.0.1:7008
   slots: (0 slots) slave
   replicates 0e2a60a544a2d4441beb03224a07ad6c437363c6
S: 210ae237bb73aa3c876eb9933a9926c575fba0cd 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 5f7f1ff4582dcd1a6cc66a9e636fe18bcacc7d4c
M: 63035068bbbc1ee1df40a050d5d47b7779f86043 127.0.0.1:7002
   slots:6827-10922,15018-16383 (5462 slots) master
   2 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

slave的自動遷移

比如現(xiàn)在有10個master,每個有1個slave汛骂,然后新增了3個slave作為冗余罕模,有的master就有2個slave了,有的master出現(xiàn)了salve冗余

如果某個master的slave掛了帘瞭,那么redis cluster會自動遷移一個冗余的slave給那個master

只要多加一些冗余的slave就可以了

為了避免的場景淑掌,就是說,如果你每個master只有一個slave蝶念,萬一說一個slave死了抛腕,然后很快,master也死了媒殉,那可用性還是降低了

但是如果你給整個集群掛載了一些冗余slave担敌,那么某個master的slave死了,冗余的slave會被自動遷移過去廷蓉,作為master的新slave全封,此時即使那個master也死了

還是有一個slave會切換成master的

之前有一個master是有冗余slave的,直接讓其他master其中的一個slave死掉桃犬,然后看有冗余slave會不會自動掛載到那個master
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末售貌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疫萤,更是在濱河造成了極大的恐慌颂跨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扯饶,死亡現(xiàn)場離奇詭異恒削,居然都是意外死亡池颈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門钓丰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躯砰,“玉大人,你說我怎么就攤上這事携丁∽列” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵梦鉴,是天一觀的道長李茫。 經(jīng)常有香客問我,道長肥橙,這世上最難降的妖魔是什么魄宏? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮存筏,結(jié)果婚禮上宠互,老公的妹妹穿的比我還像新娘。我一直安慰自己椭坚,他們只是感情好予跌,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著善茎,像睡著了一般匕得。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巾表,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音略吨,去河邊找鬼集币。 笑死,一個胖子當著我的面吹牛翠忠,可吹牛的內(nèi)容都是我干的鞠苟。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼秽之,長吁一口氣:“原來是場噩夢啊……” “哼当娱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起考榨,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤跨细,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后河质,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冀惭,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡震叙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了散休。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片媒楼。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖戚丸,靈堂內(nèi)的尸體忽然破棺而出划址,到底是詐尸還是另有隱情,我是刑警寧澤限府,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布夺颤,位于F島的核電站,受9級特大地震影響谣殊,放射性物質(zhì)發(fā)生泄漏拂共。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一姻几、第九天 我趴在偏房一處隱蔽的房頂上張望宜狐。 院中可真熱鬧,春花似錦蛇捌、人聲如沸抚恒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俭驮。三九已至,卻和暖如春春贸,著一層夾襖步出監(jiān)牢的瞬間混萝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工萍恕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逸嘀,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓允粤,卻偏偏與公主長得像崭倘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子类垫,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容