溫馨提示×

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

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

Redis 4.0.9 版本集群擴(kuò)容

發(fā)布時(shí)間:2020-09-29 20:16:13 來(lái)源:網(wǎng)絡(luò) 閱讀:377 作者:xingliguang 欄目:系統(tǒng)運(yùn)維

一、實(shí)驗(yàn)環(huán)境

1、系統(tǒng)版本:?Centos?7.6???x86_64?
2、Redis版本?4.0.9?
3、集群IP信息
172.16.100.201??172.16.100.202??172.16.100.203
4、準(zhǔn)備加入集群的IP信息
172.16.100.204??172.16.100.205??172.16.100.206
5、目的
將Redis集群的3主3從,擴(kuò)容為6主6從,204、205、206?三個(gè)新節(jié)點(diǎn)各新增1主1從!

二、安裝配置Redis集群

1、在3臺(tái)服務(wù)器上安裝redis,每臺(tái)2個(gè)實(shí)例,如下:
172.16.100.201??8000?8001
172.16.100.202??8002?8003
172.16.100.203??8004?8005
開(kāi)始安裝
#tar?xf?redis-4.0.9.tar.gz
#cd?redis-4.0.9
#make
#mv?redis-4.0.9??/opt/app/redis8000
2、提供配置文件
#cat?/opt/app/redis8000/redis.conf
daemonize?yes
port?8000
bind?172.16.100.201
appendonly?no
save?900?1
save?300?10
save?60?10000000
dir?/opt/app/redis8000/db/
pidfile?/opt/app/redis8000/redis_8000.pid
logfile?/opt/app/redis8000/logs/redis8000.log
cluster-enabled?yes
cluster-config-file?nodes8000.conf
cluster-node-timeout?20000
cluster-require-full-coverage?no

3、修改系統(tǒng)參數(shù)
#vim??/etc/security/limits.conf?
*???soft??????nofile???65535
*???hard??????nofile???65535
*???soft??????nproc????65535
*???hard??????nproc????65535

#vim?/etc/sysctl.conf
#redis
vm.overcommit_memory=1
net.core.somaxconn?=?511

關(guān)閉大頁(yè)面
#echo?never?>?/sys/kernel/mm/transparent_hugepage/enabled

使配置生效
#sysctl??-p

啟動(dòng):
/opt/app/redis8000/src/redis-server?/opt/app/redis8000/redis.conf?

以上是201服務(wù)器8000節(jié)點(diǎn)配置的例子,202和203服務(wù)器2個(gè)節(jié)點(diǎn)配置,參考上面即可,注意監(jiān)聽(tīng)ip地址和端口、路徑名稱需要作出相應(yīng)的修改。

三、創(chuàng)建Redis 4.0.9 集群(在201服務(wù)器操作即可)

1、安裝軟件包
#yum?install?ruby?rubygems?-y
#gem?install?redis?-v?3.3.5
2、創(chuàng)建集群
#/opt/app/redis8000/src/redis-trib.rb?create?--replicas?1?172.16.100.201:8000?172.16.100.201:8001?172.16.100.202:8002?172.16.100.202:8003?172.16.100.203:8004?172.16.100.203:8005
3、查看集群IP信息
172.16.100.203:8005?slave
172.16.100.201:8001?slave?
172.16.100.203:8004?master????10923-16383
172.16.100.202:8003?slave?
172.16.100.201:8000?master????0-5460?
172.16.100.202:8002?master????5461-10922

將線上對(duì)應(yīng)3主3從Redis集群slot的dump.rdb拷貝到對(duì)應(yīng)節(jié)點(diǎn),并啟動(dòng),目的是讓實(shí)驗(yàn)環(huán)境Redis集群有數(shù)據(jù),或者自己造一些數(shù)據(jù),此步驟省略!為了演示效果,我
這里手動(dòng)set幾個(gè)key,如下:
172.16.100.201:8000>?set?name1?jodan
…………
172.16.100.201:8000>?set?name10?kawayi
…………

四、將新節(jié)點(diǎn)加入集群并遷移slot(在172.16.100.201服務(wù)器操作)

注:在204、205、206各啟動(dòng)2個(gè)redis實(shí)例,端口如下分配:
204??master?8006??slave??8007
205??master?8008??slave??8009
206??master?8010??slave??8011

1、配置啟動(dòng)新服務(wù)器Redis(一共3臺(tái)服務(wù)器6個(gè)redis實(shí)例),配置方法參考步驟二,這里不再贅述。

2、將3個(gè)master節(jié)點(diǎn)加入集群
原集群詳細(xì)信息:??3主3從
#?/opt/app/redis8000/src/redis-cli??-h?172.16.100.201?-p?8000??cluster?nodes
11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?172.16.100.202:8002@18002?master?-?0?1575702279000?3?connected?5461-10922
b87a9f751b1eb4496c2eff495d216c88c22065ac?172.16.100.203:8004@18004?master?-?0?1575702277798?5?connected?10923-16383
95ccd1953fa78a1ffa599d65b72d547f8277c3b5?172.16.100.201:8001@18001?slave?b87a9f751b1eb4496c2eff495d216c88c22065ac?0?1575702279804?5?connected
2c67f0832908ae6375fec57b2399a0a8f4c9e9cc?172.16.100.203:8005@18005?slave?11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?0?1575702279000?6?connected
9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?172.16.100.201:8000@18000?myself,master?-?0?1575702278000?1?connected?0-5460
187eba647c002ff47674c71225c428fb8db59444?172.16.100.202:8003@18003?slave?9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?0?1575702276795?4?connected

將172.16.100.204:8006?加入集群,
/opt/app/redis8000/src/redis-trib.rb?add-node?172.16.100.204:8006?172.16.100.201:8000

將172.16.100.205:8008?加入集群
/opt/app/redis8000/src/redis-trib.rb?add-node?172.16.100.205:8008?172.16.100.201:8000

將172.16.100.206:8010?加入集群
/opt/app/redis8000/src/redis-trib.rb?add-node?172.16.100.206:8010?172.16.100.201:8000

查看加入3個(gè)master節(jié)點(diǎn)之后的集群信息:
#/opt/app/redis8000/src/redis-cli??-h?172.16.100.201?-p?8000??cluster?nodes???????????
11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?172.16.100.202:8002@18002?master?-?0?1575704459051?3?connected?5461-10922
95ccd1953fa78a1ffa599d65b72d547f8277c3b5?172.16.100.201:8001@18001?slave?b87a9f751b1eb4496c2eff495d216c88c22065ac?0?1575704457045?5?connected
187eba647c002ff47674c71225c428fb8db59444?172.16.100.202:8003@18003?slave?9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?0?1575704457000?4?connected
9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?172.16.100.201:8000@18000?myself,master?-?0?1575704458000?1?connected?0-5460
c4772e933405eda022b0f7b837a67f05690c76da?172.16.100.204:8006@18006?master?-?0?1575704458048?0?connected???
564d7877350b0a4789f18162c393a04584f9d311?172.16.100.205:8008@18008?master?-?0?1575704455000?7?connected
b87a9f751b1eb4496c2eff495d216c88c22065ac?172.16.100.203:8004@18004?master?-?0?1575704455040?5?connected?10923-16383
3dc917e0d7a1387caf646add2d06814cdb3560ab?172.16.100.206:8010@18010?master?-?0?1575704458548?0?connected
2c67f0832908ae6375fec57b2399a0a8f4c9e9cc?172.16.100.203:8005@18005?slave?11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?0?1575704457000?6?connected
可以看到新加入集群的節(jié)點(diǎn)是沒(méi)有slot的,所以下面就需要將其他3個(gè)master節(jié)點(diǎn)的部分slot遷移過(guò)去。

3、開(kāi)始slot自動(dòng)遷移
#ruby?/opt/app/redis8000/src/redis-trib.rb?rebalance?--auto-weights?--use-empty-masters?172.16.100.201:8000
>>>?Performing?Cluster?Check?(using?node?172.16.100.201:8000)
[OK]?All?nodes?agree?about?slots?configuration.
>>>?Check?for?open?slots...
>>>?Check?slots?coverage...
[OK]?All?16384?slots?covered.
>>>?Rebalancing?across?6?nodes.?Total?weight?=?6
Moving?2732?slots?from?172.16.100.202:8002?to?172.16.100.204:8006
#################???花費(fèi)時(shí)間長(zhǎng)短根據(jù)遷移數(shù)據(jù)量大小
Moving?2731?slots?from?172.16.100.203:8004?to?172.16.100.206:8010
#################
Moving?2731?slots?from?172.16.100.201:8000?to?172.16.100.205:8008
#################

結(jié)束之后,再次查看集群信息:
#?/opt/app/redis8000/src/redis-cli??-h?172.16.100.201?-p?8000??cluster?nodes????????????????????????????????
11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?172.16.100.202:8002@18002?master?-?0?1575706557000?3?connected?8193-10922
95ccd1953fa78a1ffa599d65b72d547f8277c3b5?172.16.100.201:8001@18001?slave?b87a9f751b1eb4496c2eff495d216c88c22065ac?0?1575706557000?5?connected
187eba647c002ff47674c71225c428fb8db59444?172.16.100.202:8003@18003?slave?9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?0?1575706554000?4?connected
9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?172.16.100.201:8000@18000?myself,master?-?0?1575706555000?1?connected?2731-5460
c4772e933405eda022b0f7b837a67f05690c76da?172.16.100.204:8006@18006?master?-?0?1575706558000?9?connected?5461-8192
564d7877350b0a4789f18162c393a04584f9d311?172.16.100.205:8008@18008?master?-?0?1575706557237?11?connected?0-2730
b87a9f751b1eb4496c2eff495d216c88c22065ac?172.16.100.203:8004@18004?master?-?0?1575706556000?5?connected?13654-16383
3dc917e0d7a1387caf646add2d06814cdb3560ab?172.16.100.206:8010@18010?master?-?0?1575706559243?10?connected?10923-13653
2c67f0832908ae6375fec57b2399a0a8f4c9e9cc?172.16.100.203:8005@18005?slave?11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?0?1575706558240?6?connected

可以看出新加入集群的3個(gè)master節(jié)點(diǎn)已經(jīng)有slot了。

查看前面手動(dòng)加的key是否成功遷移到了新master節(jié)點(diǎn),如下:
172.16.100.201:8000>?get?name1
->?Redirected?to?slot?[12933]?located?at?172.16.100.206:8010????#新節(jié)點(diǎn)
"jodan"
172.16.100.206:8010>?get?name2
->?Redirected?to?slot?[742]?located?at?172.16.100.205:8008??????#新節(jié)點(diǎn)
"kobe"
172.16.100.205:8008>?get?name3
->?Redirected?to?slot?[4807]?located?at?172.16.100.201:8000
"onier"
172.16.100.201:8000>?get?name4
->?Redirected?to?slot?[8736]?located?at?172.16.100.202:8002
"curry"
172.16.100.202:8002>?get?name5
->?Redirected?to?slot?[12801]?located?at?172.16.100.206:8010????#新節(jié)點(diǎn)
"james"
172.16.100.206:8010>?get?name6
->?Redirected?to?slot?[610]?located?at?172.16.100.205:8008??????#新節(jié)點(diǎn)
"durant"
172.16.100.205:8008>?get?name7
->?Redirected?to?slot?[4675]?located?at?172.16.100.201:8000
"timu"
172.16.100.201:8000>?get?name8
->?Redirected?to?slot?[9132]?located?at?172.16.100.202:8002
"park"
172.16.100.202:8002>?get?name9
->?Redirected?to?slot?[13197]?located?at?172.16.100.206:8010?????#新節(jié)點(diǎn)
"qiaozhi"??

可以看到有幾個(gè)key已經(jīng)成功遷移到了新節(jié)點(diǎn)205和206!

4、為新master節(jié)點(diǎn)添加slave節(jié)點(diǎn)(在172.16.100.201節(jié)點(diǎn)操作)
為了避免單點(diǎn)故障,設(shè)計(jì)主從如下:
204??????????????205?????????????206
8006?M1?????????8008?M2??????????8010?M3

8007?S3?????????8009?S1??????????8011?S2

將205@8009這個(gè)節(jié)點(diǎn)加為?204@8006?的從節(jié)點(diǎn)
/opt/app/redis8000/src/redis-trib.rb?add-node?--slave?--master-id?c4772e933405eda022b0f7b837a67f05690c76da?172.16.100.205:8009?172.16.100.204:8006

將206@8011這個(gè)節(jié)點(diǎn)加為?205@8008?的從節(jié)點(diǎn)
/opt/app/redis8000/src/redis-trib.rb?add-node?--slave?--master-id?564d7877350b0a4789f18162c393a04584f9d311?172.16.100.206:8011?172.16.100.205:8008

將204@8007這個(gè)節(jié)點(diǎn)加為?206@8010?的從節(jié)點(diǎn)
/opt/app/redis8000/src/redis-trib.rb?add-node?--slave?--master-id?3dc917e0d7a1387caf646add2d06814cdb3560ab?172.16.100.204:8007?172.16.100.206:8010

再次查看集群信息如下:
#/opt/app/redis8000/src/redis-cli??-h?172.16.100.201?-p?8000??cluster?nodes
11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?172.16.100.202:8002@18002?master?-?0?1575708808057?3?connected?8193-10922
1d7c87447dd419ac7a2260dce726af03e7965c1a?172.16.100.204:8007@18007?slave?3dc917e0d7a1387caf646add2d06814cdb3560ab?0?1575708799027?10?connected
95ccd1953fa78a1ffa599d65b72d547f8277c3b5?172.16.100.201:8001@18001?slave?b87a9f751b1eb4496c2eff495d216c88c22065ac?0?1575708807000?5?connected
187eba647c002ff47674c71225c428fb8db59444?172.16.100.202:8003@18003?slave?9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?0?1575708806049?4?connected
9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc?172.16.100.201:8000@18000?myself,master?-?0?1575708806000?1?connected?2731-5460
c4772e933405eda022b0f7b837a67f05690c76da?172.16.100.204:8006@18006?master?-?0?1575708803000?9?connected?5461-8192
564d7877350b0a4789f18162c393a04584f9d311?172.16.100.205:8008@18008?master?-?0?1575708801000?11?connected?0-2730
735012e7c6f181f7e8a197fc1667ff7bc075361d?172.16.100.206:8011@18011?slave?564d7877350b0a4789f18162c393a04584f9d311?0?1575708807054?11?connected
b87a9f751b1eb4496c2eff495d216c88c22065ac?172.16.100.203:8004@18004?master?-?0?1575708805047?5?connected?13654-16383
5ba06662b9b260ca2cadcf2f7692e5e0e1a91474?172.16.100.205:8009@18009?slave?c4772e933405eda022b0f7b837a67f05690c76da?0?1575708804045?9?connected
3dc917e0d7a1387caf646add2d06814cdb3560ab?172.16.100.206:8010@18010?master?-?0?1575708805000?10?connected?10923-13653
2c67f0832908ae6375fec57b2399a0a8f4c9e9cc?172.16.100.203:8005@18005?slave?11ae0bcc3aeae0cb7e40c28f407e3d2a30504989?0?1575708806000?6?connected

遷移結(jié)束?。。?/pre>

不足之處,請(qǐng)多多交流指出。

向AI問(wèn)一下細(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