redis5.0以后版本 搭建集群
redis5.0以前为什么要用ruby?
redis5.0以后的版本
集群搭建,不需要借助ruby
https://blog.csdn.net/qq_25215821/article/details/100997778
新版命令:
src/redis-cli --cluster create --cluster-replicas 1
ip1:6379 ip2:6380 ip3:6381
ip1:6382 ip2:6383 ip3:6384
坑-1: https://www.liangzl.com/get-article-detail-40471.html
redis集群部署一直卡在 Waiting for the cluster to join ......
原因:redis集群总线端口为redis客户端端口加上10000,比如说你的redis 6379端口为客户端通讯端口,那么16379端口为集群总线端口
解决:添加redis 集群总线端口 和每个redis实例的通信端口
坑-2: https://www.jianshu.com/p/7720c922dd80
ERR] Node 192.168.10.204:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解决:
首先关闭redis
其次如果之前redis有数据存在,flushall清空;
然后关闭redis删除 redis目录如下文件: dump.rdb,nodes-6379.conf
重启解决
加节点(扩容)
1- 加配置文件,主,从,修改端口,启动两个新的redis
2- 新主节点与已知主节点进行关联
3- 绑定从节点
redis-cli --cluster add-node newip:newport knownip:knownport
进入从节点
执行 CLUSTER REPLICATE masterid
4- 重新分配槽位 redis-cli --cluster reshared newmasterip:port
减节点
先删除从节点;再删除主节点
redis-cli --cluster del-node ip:port id
删除主节点时:
1- 先把槽位放回。注意:目前只能把master的数据迁移到一个节点上,暂时做不了平均分配功能,或者可以自己手动分配平均的槽位给各个主节点。
redis-cli --cluster reshard delip:delport
①这里是指定分配的槽位。
②紧接着是指定接收槽位的节点id
③这里是指定贡献出槽位的节点id,步骤是 先输入 节点id,回车之后,再输入 done,再回车
2- 再进行移除节点
redis-cli --cluster del-node ip:port id
版本5.0.2集群搭建:
https://blog.csdn.net/qq_34002221/article/details/85019752
https://blog.csdn.net/qq_25215821/article/details/100997778