您好,登錄后才能下訂單哦!
Redis集群創(chuàng)建后,可能會(huì)出現(xiàn)互為主從關(guān)系的節(jié)點(diǎn)從屬于同一臺(tái)服務(wù)器的情況。在此種情況下,若
服務(wù)器故障宕機(jī)或需要停機(jī)維護(hù),互為主從關(guān)系的節(jié)點(diǎn)同時(shí)停止運(yùn)行,導(dǎo)致redis集群暫時(shí)失去一部
分slot插槽。此時(shí),redis集群為fail狀態(tài),對(duì)其進(jìn)行的數(shù)據(jù)讀寫操作均無(wú)法正常進(jìn)行。為避免此種情
況的發(fā)生,應(yīng)對(duì)redis集群節(jié)點(diǎn)的主從關(guān)系進(jìn)行調(diào)整,使互為主從關(guān)系的節(jié)點(diǎn)分屬于不同的服務(wù)器。
1.使用redis-trib.rb腳本將待調(diào)整的從節(jié)點(diǎn)從redis集群中刪除。(執(zhí)行此步操作時(shí),從節(jié)點(diǎn)會(huì)從redis集群中去除。同時(shí),此從節(jié)點(diǎn)進(jìn)程會(huì)被殺掉。)命令如下:
redis-trib.rb del-node 集群中某節(jié)點(diǎn)IP:PORT 待調(diào)整的從節(jié)點(diǎn)ID
2.刪除待調(diào)整從節(jié)點(diǎn)rdb子目錄下的所有文件。(包括“dump.rdb”和“nodes-節(jié)點(diǎn)端口號(hào).conf”文件。)
3.重新啟動(dòng)待調(diào)整的從節(jié)點(diǎn)。
4.使用redis-trib.rb腳本將待調(diào)整的從節(jié)點(diǎn)加入到redis集群中,使其與合適的主節(jié)點(diǎn)對(duì)應(yīng),建立起新的主從關(guān)系。命令如下:
redis-trib.rb add-node --slave --master-id 主節(jié)點(diǎn)ID 待調(diào)整的從節(jié)點(diǎn)IP:PORT 集群中某節(jié)點(diǎn)IP:PORT
圖一 redis集群節(jié)點(diǎn)主從關(guān)系
主節(jié)點(diǎn)信息 從節(jié)點(diǎn)信息
主節(jié)點(diǎn)ID | 主節(jié)點(diǎn)地址 | 從節(jié)點(diǎn)ID | 從節(jié)點(diǎn)地址 |
---|---|---|---|
487247ac4e34c0102d54eaca3256dce9b24667f4 | 132.46.115.146:6580 | 23b674847132d82c355b3f440aa3f1f940316b69 | 132.46.115.148:6581 |
3e745792f2a1f179501aea3264186aa55103a434 | 132.46.115.148:6580 | 06b296c1d87fbf69638076d53054d89bd15ef2ad | 132.46.115.146:6581 |
2d93e76a04d20ca0a91e22694201f3b4b18c740b | 132.46.115.149:6580 | f8a342695baac0bce608ed468f2414c2e68abc49 | 132.46.115.149:6581 |
表一 redis集群節(jié)點(diǎn)主從關(guān)系
從圖一、表一可見,其中一對(duì)主從節(jié)點(diǎn)(132.46.115.149:6580和132.46.115.149:6581)從屬于同一臺(tái)服務(wù)器。
需要從redis集群中去除兩個(gè)從節(jié)點(diǎn)(包括132.46.115.149:6581),而后建立新的主從關(guān)系。具體操作方法如下。
(1)從redis集群中刪掉兩個(gè)從節(jié)點(diǎn)(132.46.115.146:6581和132.46.115.149:6581)
在任意一臺(tái)服務(wù)器上執(zhí)行下面2條命令:
redis-trib.rb del-node 132.46.115.146:6580 06b296c1d87fbf69638076d53054d89bd15ef2ad
redis-trib.rb del-node 132.46.115.146:6580 f8a342695baac0bce608ed468f2414c2e68abc49
(2)刪除兩個(gè)從節(jié)點(diǎn)rdb子目錄下的所有文件
分別在132.46.115.146和132.46.115.149服務(wù)器上執(zhí)行如下命令:
rm ${REDIS_CLUSTER_HOME}/redis6581/rdb/*
(3)重新啟動(dòng)刪掉的兩個(gè)從節(jié)點(diǎn)
分別在132.46.115.146和132.46.115.149服務(wù)器上執(zhí)行如下命令:
${REDIS_CLUSTER_HOME}/redis6581/bin/redis-server ${REDIS_CLUSTER_HOME}/redis6581/conf/redis.conf
(4)將刪掉的兩個(gè)從節(jié)點(diǎn)加入redis集群并建立新的主從關(guān)系
在任意一臺(tái)服務(wù)器上執(zhí)行下面2條命令:
redis-trib.rb add-node --slave --master-id 2d93e76a04d20ca0a91e22694201f3b4b18c740b 132.46.115.146:6581 132.46.115.146:6580
redis-trib.rb add-node --slave --master-id 3e745792f2a1f179501aea3264186aa55103a434 132.46.115.149:6581 132.46.115.146:6580
調(diào)整之后的redis集群節(jié)點(diǎn)關(guān)系見表二
主節(jié)點(diǎn)ID | 主節(jié)點(diǎn)地址 | 從節(jié)點(diǎn) | 從節(jié)點(diǎn)地址 |
---|---|---|---|
487247ac4e34c0102d54eaca3256dce9b24667f4 | 132.46.115.146:65 | 23b674847132d82c355b3f440aa3f1f940316b69 | 132.46.115.148:6581 |
3e745792f2a1f179501aea3264186aa55103a434 | 132.46.115.148:6580 | f8a342695baac0bce608ed468f2414c2e68abc49 | 132.46.115.149:6581 |
2d93e76a04d20ca0a91e22694201f3b4b18c740b | 132.46.115.149:6580 | 06b296c1d87fbf69638076d53054d89bd15ef2ad | 132.46.115.146:6581 |
表二 redis集群節(jié)點(diǎn)新主從關(guān)系
圖二 自動(dòng)檢測(cè)redis集群節(jié)點(diǎn)主從關(guān)系的腳本
圖二為自動(dòng)檢測(cè)redis集群節(jié)點(diǎn)主從關(guān)系的腳本。執(zhí)行此腳本時(shí)需要傳入2個(gè)參數(shù)。參數(shù)一為redis集群任一節(jié)點(diǎn)IP,參數(shù)二為redis集群任意節(jié)點(diǎn)port。若存在主從節(jié)點(diǎn)從屬于同一臺(tái)服務(wù)器的情況,信息將以紅色底色顯示。否則,信息以綠色底色顯示。腳本執(zhí)行方法及輸出結(jié)果如圖三所示。
圖三 自動(dòng)檢測(cè)redis集群節(jié)點(diǎn)主從關(guān)系腳本執(zhí)行情況
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。