RedisCluster集群模式扩容节点
如下图,上一章讲到搭建了3组集群,端口号依次为7000-7005,现在我们要扩容一组端口号为7006-7007
1,新增7006和7007节点
上面我们已经创建了redis7006/redis7007文件夹和redis.conf文件,接下来我们直接启动这2个节点
-
/application/redis/bin/redis-server /application/rediscluster/redis7006/redis.conf
-
/application/redis/bin/redis-server /application/rediscluster/redis7007/redis.conf
2,把7006节点增加到集群中
-
#最后面7000节点不是一定的,可以写7000-7005任意一节点皆可
-
/application/redis/bin/redis-cli --cluster add-node 172.16.166.122:7006 172.16.166.122:7000
3,扩容从节点
先查看7006在集群中的ID
-
/application/redis/bin/redis-cli -h 172.16.166.122 -p 7000 -c
-
cluster nodes
找到7006的集群ID,那么执行add-node即可
-
#172.16.166.122:7000 不是一定的,可以填7000-7005任意一端口
-
/application/redis/bin/redis-cli --cluster add-node 172.16.166.122:7007 172.16.166.122:7000 --cluster-slave --cluster-master-id beb327340e04d25fb6a0bf0b52a0440c1e170ad2
OK,到这里扩容2个节点7006和7007已经完成一半,但还没有分配哈希槽,无法进行写操作,继续往下看
4,分配哈希槽给7006
问题来了,总哈希槽是16384,平均分给3组,每组是5461,现在加多一组到集群,变成4组,平均每组 16384/4=4096,那么每组要抽取多少哈希槽给7006呢?4096/3=1365
这是道比较简单的数学题。
执行reshard进行从3组中抽取1365哈希缓存分配给7006
/application/redis/bin/redis-cli --cluster reshard 172.16.166.122:7000
执行后会弹出“您要移动多少个插槽(从 1 到 16384)” 输入上面算出来的结果4096
输入4096后会弹出接收者ID,我们输入上面找到的7006的集群ID
然后会弹出分配方式,是平均分配还是从其中一台抽取,我们使用平均分配 all
后面输入 yes即可
到这里扩容分哈希槽就完成了,接下来看分配的结果:
-
/application/redis/bin/redis-cli -h 172.16.166.122 -p 7000 -c
-
cluster nodes
下图这3段哈希槽就是那3组分配给7006的
到这里扩容完成
最关键时刻来了,测试集群,先连接到7000端口
-
#连接到集群
-
/application/redis/bin/redis-cli -h 172.16.166.122 -p 7000 -c
-
-
#查看集群节点
-
cluster nodes
测试写的操作:
测试 set aaa 1 数据存到 [10439]哈希槽,属于7001节点
测试 set bbb 2 数据存到 [5287]哈希槽,属于7000节点
测试 set ccc 3 数据存到 [135]哈希槽,属于7006节点
测试 set ddd 4 该key已经存在,修改不提示在哪个节点
测试 set eee 5 数据存到 [14407]哈希槽,属于7002节点
至此测试完成,集群共有4组,只有master才有写的权限,而上面测试数据分别存到7000,7001,7002,7006 master节点,测试结果通过。
看下图:
测试读的操作:
测试get aaa 从7001节点的哈希槽[10439]找到该key结果为 1
测试get ccc 从7006节点的哈希槽[135]找到该key结果为 3
测试通过。
底层原理是什么呢?怎么找到该key是否存在集群中?然后从中读取出对应的哈希槽和值呢?
通过 cluster help 查看帮助
cluster help
看下图有个 keyslot <key> 命令
输入 cluster keyslot aaa 我们看到结果是 10439 就是该key所在的哈希槽 [10439]
那么通过 cluster nodes我们可以看到[10439]属于 7001节点
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfigfag
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01