不使用redis-trib搭建Redis集群

一,官方的文档搭建方式:

通过Redis-cli 脚手架指定集群内的所有的机器。

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 \
--cluster-replicas 1

既然是集群,那么肯定需要区分主节点和子节点的。这里Redis给你封装了一个指定主节点、子节点的工具------redis-trib。工具操作的命令很简单。但是问题来了,公司的内网条件下开发,有限速处理。msi文件下载实在太慢或者直接就是下载失败。

然后就去百度解决方案,但是统一的就是换阿里镜像下载....并不能解决问题

二,问题思考

值得遗憾的是Redis官网中,只有对集群搭建是否成功的一个内部搭建好,只用指定节点port的测试集群且并不能用来实际应用,说白了就是让你开了grep下证明你集群搭建没问题。平时会写一些.sh启动文件,将shell命令整合到文件中通过简单的命令去拉动大量复杂的命令。既然工具下载不了,那么就应该去思考这个工具内部封装好的命令是什么,它的实现方式是什么,立刻去官网查找关于trib的解析。发现是一门没有接触过的语言 Ruby写的

当然选择研究Ruby看懂脚本是个方法,但是生产线上的开发是有时间限制的,所以就去国外的网站有找了很多的资料,发现有通过meet命令去实现的,也有根据trib去实现了shell命令文件的解决办法。这里将meet命令指定方式master,slave节点的方式分享。

三,搭建

Step1: 在保证Redis集群正在运行的情况下: ps -ef|grep redis

Step2: 让Redis的节点之间相互发现

          redis-cli -c -p 7000 cluster meet 127.0.0.1 7001
          redis-cli -c -p 7000 cluster meet 127.0.0.1 7002
          redis-cli -c -p 7000 cluster meet 127.0.0.1 7003
          redis-cli -c -p 7000 cluster meet 127.0.0.1 7004
          redis-cli -c -p 7000 cluster meet 127.0.0.1 7005

Step3: 给节点分配Slots,这里有shell命令基础的应该很容易理解

          for slot in {0..5461}; do redis-cli -p 7000 CLUSTER ADDSLOTS $slot > /dev/null; done;
          for slot in {5462..10923}; do redis-cli -p 7001 CLUSTER ADDSLOTS $slot > /dev/null;; done;
          for slot in {10924..16383}; do redis-cli -p 7002 CLUSTER ADDSLOTS $slot > /dev/null;; done;

Step4: 区分好slaves和master (到此Redis集群各节点也就搭建完成了)

            redis-cli -p 7003 cluster replicate 0db8943cccb9b8c3963af78019baf8d2db827f14 

            redis-cli -p 7004 cluster replicate add93eed2b5f05371afab5d2611381ebc363d9c7

            redis-cli -p 7005 cluster replicate 12e0e6c2e59b8ac284d413623b7d73fd3ec56383

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值