博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis-Cluster实战--7.Redis-Cluster水平扩容(ruby实现版)
阅读量:6238 次
发布时间:2019-06-22

本文共 1325 字,大约阅读时间需要 4 分钟。

 

转载请注明出处哈:


   

一、目的

Redis-Cluster是Redis的分布式解决方案,Redis Cluster提供了在线扩容(添加分片)功能,有效扩展存储能力和读写能力。

 

水平扩容思路如下:

1. 启动新的Redis实例。

2. 集群中的机器meet上述Redis实例,将其加入集群。

3. 由于新的实例没有指派槽,所以要将部分其他实例上面的槽迁移至新的实例。

 

 

二、具体实现:(已建立好的集群参考

 

1.  启动新的Redis实例,端口是8007

sed 's/8000/8007/g' redis-8000.conf > redis-8007.confredis-server /opt/soft/redis/conf/redis-8007.conf

  

2.  将8007加入集群

redis-cli -c -p 8000 cluster meet 127.0.0.1 8007

    上述两步,已经在之前文档里面详细介绍过了,这里就不在赘述了。

 

 

3. 重新分片:(redis作者提供了redis-trib.rb工具支持在线扩容功能)

redis-trib.rb reshard 127.0.0.1:8007
#根据提示选择要迁移的slot(ps:这里选择500)
How many slots do you want to move (from 1 to 16384)? 500
#选择要接受这些slot的node-id
What is the receiving node ID? f51e26b5d5ff74f85341f06f28f125b7254e61bf
#选择slot来源:
#all表示从所有的master重新分配,
#或者数据要提取slot的master节点id,最后用done结束
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:all
#打印被移动的slot后,输入yes开始移动slot以及对应的数据.
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#结束

 

 

集群状态:

127.0.0.1:8000> cluster infocluster_state:okcluster_slots_assigned:16384cluster_slots_ok:16384cluster_slots_pfail:0cluster_slots_fail:0cluster_known_nodes:8cluster_size:5cluster_current_epoch:7cluster_my_epoch:1cluster_stats_messages_sent:193766cluster_stats_messages_received:193765 

 

你可能感兴趣的文章
软件测试面试-必掌握的 Linux常用命令大全--2.0更新版!
查看>>
结构体嵌套二级指针
查看>>
自定义密码输入框,集成化的支付弹框
查看>>
C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
查看>>
Linux中Samba服务器的搭建
查看>>
iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态
查看>>
nfs服务的配置
查看>>
微信小程序支付调试
查看>>
ASP.NET中GridView数据导出到Excel
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
swoole项目思维转换 -- 前篇
查看>>
我的友情链接
查看>>
Redis之----Redis的数据类型和操作
查看>>
只读字段与标签字段
查看>>
ubuntu修改时区和时间的方法
查看>>
maven实战 读书笔记三#高级程序员进阶之路#
查看>>
硬盘安装windows 7
查看>>
编译器编译原理--详解
查看>>
第五章 择偶
查看>>