Redis 4.0.9 版本集群扩容
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,一、实验环境1、系统版本: Centos 7.6 x86_64 2、Redis版本 4.0.9 3、集群IP信息172.16.100.201 172.16.100.202 172.16.100
千家信息网最后更新 2025年02月06日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.2034、准备加入集群的IP信息172.16.100.204 172.16.100.205 172.16.100.2065、目的将Redis集群的3主3从,扩容为6主6从,204、205、206 三个新节点各新增1主1从!
二、安装配置Redis集群
1、在3台服务器上安装redis,每台2个实例,如下:172.16.100.201 8000 8001172.16.100.202 8002 8003172.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/redis80002、提供配置文件#cat /opt/app/redis8000/redis.confdaemonize yesport 8000bind 172.16.100.201appendonly nosave 900 1save 300 10save 60 10000000dir /opt/app/redis8000/db/pidfile /opt/app/redis8000/redis_8000.pidlogfile /opt/app/redis8000/logs/redis8000.logcluster-enabled yescluster-config-file nodes8000.confcluster-node-timeout 20000cluster-require-full-coverage no3、修改系统参数#vim /etc/security/limits.conf * soft nofile 65535* hard nofile 65535* soft nproc 65535* hard nproc 65535#vim /etc/sysctl.conf#redisvm.overcommit_memory=1net.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.52、创建集群#/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:80053、查看集群IP信息172.16.100.203:8005 slave172.16.100.201:8001 slave 172.16.100.203:8004 master 10923-16383172.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 8007205 master 8008 slave 8009206 master 8010 slave 80111、配置启动新服务器Redis(一共3台服务器6个redis实例),配置方法参考步骤二,这里不再赘述。2、将3个master节点加入集群原集群详细信息: 3主3从# /opt/app/redis8000/src/redis-cli -h 172.16.100.201 -p 8000 cluster nodes11ae0bcc3aeae0cb7e40c28f407e3d2a30504989 172.16.100.202:8002@18002 master - 0 1575702279000 3 connected 5461-10922b87a9f751b1eb4496c2eff495d216c88c22065ac 172.16.100.203:8004@18004 master - 0 1575702277798 5 connected 10923-1638395ccd1953fa78a1ffa599d65b72d547f8277c3b5 172.16.100.201:8001@18001 slave b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575702279804 5 connected2c67f0832908ae6375fec57b2399a0a8f4c9e9cc 172.16.100.203:8005@18005 slave 11ae0bcc3aeae0cb7e40c28f407e3d2a30504989 0 1575702279000 6 connected9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc 172.16.100.201:8000@18000 myself,master - 0 1575702278000 1 connected 0-5460187eba647c002ff47674c71225c428fb8db59444 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-1092295ccd1953fa78a1ffa599d65b72d547f8277c3b5 172.16.100.201:8001@18001 slave b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575704457045 5 connected187eba647c002ff47674c71225c428fb8db59444 172.16.100.202:8003@18003 slave 9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc 0 1575704457000 4 connected9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc 172.16.100.201:8000@18000 myself,master - 0 1575704458000 1 connected 0-5460c4772e933405eda022b0f7b837a67f05690c76da 172.16.100.204:8006@18006 master - 0 1575704458048 0 connected 564d7877350b0a4789f18162c393a04584f9d311 172.16.100.205:8008@18008 master - 0 1575704455000 7 connectedb87a9f751b1eb4496c2eff495d216c88c22065ac 172.16.100.203:8004@18004 master - 0 1575704455040 5 connected 10923-163833dc917e0d7a1387caf646add2d06814cdb3560ab 172.16.100.206:8010@18010 master - 0 1575704458548 0 connected2c67f0832908ae6375fec57b2399a0a8f4c9e9cc 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 = 6Moving 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-1092295ccd1953fa78a1ffa599d65b72d547f8277c3b5 172.16.100.201:8001@18001 slave b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575706557000 5 connected187eba647c002ff47674c71225c428fb8db59444 172.16.100.202:8003@18003 slave 9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc 0 1575706554000 4 connected9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc 172.16.100.201:8000@18000 myself,master - 0 1575706555000 1 connected 2731-5460c4772e933405eda022b0f7b837a67f05690c76da 172.16.100.204:8006@18006 master - 0 1575706558000 9 connected 5461-8192564d7877350b0a4789f18162c393a04584f9d311 172.16.100.205:8008@18008 master - 0 1575706557237 11 connected 0-2730b87a9f751b1eb4496c2eff495d216c88c22065ac 172.16.100.203:8004@18004 master - 0 1575706556000 5 connected 13654-163833dc917e0d7a1387caf646add2d06814cdb3560ab 172.16.100.206:8010@18010 master - 0 1575706559243 10 connected 10923-136532c67f0832908ae6375fec57b2399a0a8f4c9e9cc 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 2068006 M1 8008 M2 8010 M38007 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 nodes11ae0bcc3aeae0cb7e40c28f407e3d2a30504989 172.16.100.202:8002@18002 master - 0 1575708808057 3 connected 8193-109221d7c87447dd419ac7a2260dce726af03e7965c1a 172.16.100.204:8007@18007 slave 3dc917e0d7a1387caf646add2d06814cdb3560ab 0 1575708799027 10 connected95ccd1953fa78a1ffa599d65b72d547f8277c3b5 172.16.100.201:8001@18001 slave b87a9f751b1eb4496c2eff495d216c88c22065ac 0 1575708807000 5 connected187eba647c002ff47674c71225c428fb8db59444 172.16.100.202:8003@18003 slave 9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc 0 1575708806049 4 connected9a02a2120d4a0f9bd8b3ae7e11ffe28d0e03d6fc 172.16.100.201:8000@18000 myself,master - 0 1575708806000 1 connected 2731-5460c4772e933405eda022b0f7b837a67f05690c76da 172.16.100.204:8006@18006 master - 0 1575708803000 9 connected 5461-8192564d7877350b0a4789f18162c393a04584f9d311 172.16.100.205:8008@18008 master - 0 1575708801000 11 connected 0-2730735012e7c6f181f7e8a197fc1667ff7bc075361d 172.16.100.206:8011@18011 slave 564d7877350b0a4789f18162c393a04584f9d311 0 1575708807054 11 connectedb87a9f751b1eb4496c2eff495d216c88c22065ac 172.16.100.203:8004@18004 master - 0 1575708805047 5 connected 13654-163835ba06662b9b260ca2cadcf2f7692e5e0e1a91474 172.16.100.205:8009@18009 slave c4772e933405eda022b0f7b837a67f05690c76da 0 1575708804045 9 connected3dc917e0d7a1387caf646add2d06814cdb3560ab 172.16.100.206:8010@18010 master - 0 1575708805000 10 connected 10923-136532c67f0832908ae6375fec57b2399a0a8f4c9e9cc 172.16.100.203:8005@18005 slave 11ae0bcc3aeae0cb7e40c28f407e3d2a30504989 0 1575708806000 6 connected迁移结束!!!
不足之处,请多多交流指出。
节点
集群
信息
服务器
服务
配置
实例
数据
版本
成功
再次
手动
步骤
环境
目的
端口
系统
参考
实验
三个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
用开发app软件开发
网络安全生态需加快建设
树莓派怎么做成esc服务器
马鞍山点餐系统软件开发要多少钱
数据库镜像技术 故障
软件开发干到多少岁
微信公众平台的数据库
数据库面试题及答案
2konline 2服务器
网络安全保卫局别称
ibm服务器售后网点
软件开发企业财务制度
帝国cms换服务器
河北好的软件开发特点
数据库树形结构查询
算力网络技术创新研发及标准化
nginx 服务器ip
数据库shadow
乌镇互联网高科技大会
服务器安全注意事项和方法
软件开发违约金一般
哪个数据库有 查看同义词
网络安全保卫局别称
嘉兴云网络技术
国家统计局企业数据库
收银系统提示云服务器登录失败
合肥软件开发团队
东丽区数据网络技术不二之选
尚亦网络技术部福建泉州
电网网络安全应急管理制度