Redis4.0.9版本集群扩容-创新互联

一、实验环境

10年积累的做网站、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有古县免费网站建设让你可以放心的选择与我们合作。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 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、修改系统参数 #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 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 将线上对应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  slave  8007 205  master 8008  slave  8009 206  master 8010  slave  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 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个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 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 可以看到新加入集群的节点是没有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 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个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节点添加slave节点(在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 --slave --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 --slave --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 --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 迁移结束!!!

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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享题目:Redis4.0.9版本集群扩容-创新互联
分享路径:http://scyanting.com/article/dgsoip.html