溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis集群節(jié)點(diǎn)主從關(guān)系調(diào)整

發(fā)布時(shí)間:2020-07-27 03:32:57 來(lái)源:網(wǎng)絡(luò) 閱讀:383 作者:鼻涕蟲YP 欄目:系統(tǒng)運(yùn)維

一.概述

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ù)器。

二.調(diào)整方法描述

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

三.具體操作方法舉例

1.redis集群節(jié)點(diǎn)主從關(guān)系信息
                                                 圖一 redis集群節(jié)點(diǎn)主從關(guān)系

Redis集群節(jié)點(diǎn)主從關(guān)系調(diào)整
主節(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)系的腳本

Redis集群節(jié)點(diǎn)主從關(guān)系調(diào)整

圖二 自動(dòng)檢測(cè)redis集群節(jié)點(diǎn)主從關(guān)系的腳本Redis集群節(jié)點(diǎn)主從關(guān)系調(diào)整

圖二為自動(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é)果如圖三所示。

Redis集群節(jié)點(diǎn)主從關(guān)系調(diào)整
圖三 自動(dòng)檢測(cè)redis集群節(jié)點(diǎn)主從關(guān)系腳本執(zhí)行情況

向AI問一下細(xì)節(jié)

免責(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)容。

AI