redis 4.0.9 版本集群扩容(redis4.0.10)-pg电子平台

大家好!今天让小编来大家介绍下关于redis 4.0.9 版本集群扩容的问题,以下是酷知号的小编对此问题的归纳整理,让我们一起来看看吧。

系统运维

一、实验环境

1、系统版本: 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、准备加入集群的ip信息
172.16.100.204  172.16.100.205  172.16.100.206
5、目的
将redis集群的3主3从,扩容为6主6从,204、205、206 三个新各新增1主1从!

二、安装配置redis集群

1、在3台服务器上安装redis,每台2个实例,如下:
172.16.100.201  8000 8001
172.16.100.202  8002 8003
172.16.100.203  8004 8005
开始安装
#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
se 900 1
se 300 10
se 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、修改系统参数
#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
关闭大页面
#echo never > /sys/kernel/mm/transparent_hugepage/enabled
使配置生效
#sysctl  -p
启动:
/opt/app/redis8000/src/redis-server /opt/app/redis8000/redis.conf 
以上是201服务器8000节点配置的例子,202和203服务器2个节点配置,参考上面即可,注意监听ip地址和端口、路径名称需要作出相应的修改。

三、创建redis 4.0.9 集群(在201服务器操作即可)

1、安装软件包
#yum install ruby rubygems -y
#gem install redis -v 3.3.5
2、创建集群
#/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 sle
172.16.100.201:8001 sle 
172.16.100.203:8004 master    10923-16383
172.16.100.202:8003 sle 
172.16.100.201:8000 master    0-5460 
172.16.100.202:8002 master    5461-10922
将线上对应3主3从redis集群slot的dump.rdb拷贝到对应节点,并启动,目的是让实验环境redis集群有数据,或者自己造一些数据,此步骤省略!为了演示效果,我
这里手动set几个key,如下:
172.16.100.201:8000> set name1 jodan
…………
172.16.100.201:8000> set name10 kawayi
…………

四、将新节点加入集群并迁移slot(在172.16.100.201服务器操作)

注:在204、205、206各启动2个redis实例,端口如下分配:
204  master 8006  sle  8007
205  master 8008  sle  8009
206  master 8010  sle  8011
1、配置启动新服务器redis(一共3台服务器6个redis实例),配置方法参考步骤二,这里不再赘述。
2、将3个master节点加入集群
原集群详细信息:  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 sle b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575702279804 5 connected
2c67f0832908ae6375fec57b2399a0a8f4c9e9cc 172.16.100.203:8005@18005 sle 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 sle 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个master节点之后的集群信息:
#/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 sle b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575704457045 5 connected
187eba647c002ff47674c71225c428fb8db59444 172.16.100.202:8003@18003 sle 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 sle 11ae0bcc3aeae0cb7e40c28f407e3d2a30504989 0 1575704457000 6 connected
可以看到新加入集群的节点是没有slot的,所以下面就需要将其他3个master节点的部分slot迁移过去。
3、开始slot自动迁移
#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
#################   花费时间长短根据迁移数据量大小
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
#################
结束之后,再次查看集群信息:
# /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 sle b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575706557000 5 connected
187eba647c002ff47674c71225c428fb8db59444 172.16.100.202:8003@18003 sle 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 sle 11ae0bcc3aeae0cb7e40c28f407e3d2a30504989 0 1575706558240 6 connected
可以看出新加入集群的3个master节点已经有slot了。
查看前面手动加的key是否成功迁移到了新master节点,如下:
172.16.100.201:8000> get name1
-> redirected to slot [12933] located at 172.16.100.206:8010    #新节点
jodan
172.16.100.206:8010> get name2
-> redirected to slot [742] located at 172.16.100.205:8008      #新节点
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    #新节点
james
172.16.100.206:8010> get name6
-> redirected to slot [610] located at 172.16.100.205:8008      #新节点
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     #新节点
qiaozhi  
可以看到有几个key已经成功迁移到了新节点205和206!
4、为新master节点添加sle节点(在172.16.100.201节点操作)
为了避免单点故障,设计主从如下:
204              205             206
8006 m1         8008 m2          8010 m3
8007 s3         8009 s1          8011 s2
将205@8009这个节点加为 204@8006 的从节点
/opt/app/redis8000/src/redis-trib.rb add-node --sle --master-id c4772e933405eda022b0f7b837a67f05690c76da 172.16.100.205:8009 172.16.100.204:8006
将206@8011这个节点加为 205@8008 的从节点
/opt/app/redis8000/src/redis-trib.rb add-node --sle --master-id 564d7877350b0a4789f18162c393a04584f9d311 172.16.100.206:8011 172.16.100.205:8008
将204@8007这个节点加为 206@8010 的从节点
/opt/app/redis8000/src/redis-trib.rb add-node --sle --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 sle 3dc917e0d7a1387caf646add2d06814cdb3560ab 0 1575708799027 10 connected
95ccd1953fa78a1ffa599d65b72d547f8277c3b5 172.16.100.201:8001@18001 sle b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575708807000 5 connected
187eba647c002ff47674c71225c428fb8db59444 172.16.100.202:8003@18003 sle 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 sle 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 sle 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 sle 11ae0bcc3aeae0cb7e40c28f407e3d2a30504989 0 1575708806000 6 connected
迁移结束!!!

不足之处,请多多交流指出。

以上就是小编对于redis 4.0.9 版本集群扩容问题和相关问题的解答了,redis 4.0.9 版本集群扩容的问题希望对你有用!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文链接:https://www.andon8.com/399989.html

网站地图