Redis cluster增加一个机器后,reshard错误解决

1、集群新增实例

用redis-trib.rb给集群中添加了一台机器,但是这台机器刚添加进来时,slots数量是为空的。
在这里插入图片描述

2、重新分配hash slot

没有slot则不能处理任何数据,所以需要重新分配。执行如下命令

redis-trib.rb reshard 192.168.2.107:7001  (这里可以是集群中任何1个ip) 

在这里插入图片描述

3、执行失败

在reshard时失败,报的错是因为权限问题。
在这里插入图片描述
在网上了解到目前这个版本集群reshard不支持权限,只能将权限删除掉。

redis version(<4.0.7) doesn't support migrate command in the cluster with auth mode 

4、删除权限后还是报错

在这里插入图片描述

Node xxx:xx is not empty. Either the node already knows other nodes (check 
     with CLUSTER NODES) or contains some key in database 0.

错误提示是说:slot插槽被占用了、这是因为 搭建集群前时,以前redis的旧数据和配置信息没有清理干净。
用如下命令去修复,也是没用的:

redis-trib.rb fix 192.168.2.107:7001

5、删除集群相关数据

步骤1)用redis-cli 登录到每个节点执行 flushall 和 cluster reset 。
步骤2)停止各redis实例。
步骤3)将每个节点下aof、rdb的本地备份文件删除。
步骤4)将每个节点下的cluster-config-file文件删掉,这个是保存集群的状态数据文件。

6、重新启动各redis实例

重新启动各redis实例,然后再次创建集群,重复上述reshard过程,一切ok。

7、总结

1)开启认证,任何方式都可以
2)开启认证,只有4.0.7之后的版本支持migrate auth,但是4.0.9的不支持。
3)如果去掉密码能正常使用,那么在迁移时就去掉密码,这是最简便方法,否则就自己写脚本实现带密码用集群命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建一个 Redis Cluster 集群的步骤如下: 1. 下载并安装 Redis:在 Redis 官网下载 Redis 并安装。安装完成后,可以通过 redis-cli 命令来测试 Redis 是否正常工作。 2. 配置 Redis:编辑 redis.conf 文件,设置 Redis 的端口号、密码、数据存储路径等参数。如果需要启用集群功能,需要在配置文件中添加 cluster-enabled yes 和 cluster-config-file 路径等配置信息。 3. 创建 Redis Cluster:使用 create-cluster 脚本创建 Redis Cluster,该脚本可以在 Redis 安装目录的 utils/create-cluster 目录下找到。需要指定 Redis Cluster 的端口号、节点数量等参数。例如,执行以下命令可以创建一个 3 个节点的 Redis Cluster: ``` $ create-cluster start --port 7000 --replicas 0 --num-nodes 3 ``` 4. 添加节点:使用 add-node 脚本向 Redis Cluster 添加新的节点。例如,执行以下命令可以将一个新的节点添加到 Redis Cluster 中: ``` $ redis-cli --cluster add-node 127.0.0.1:7000 127.0.0.1:7001 ``` 5. 删除节点:使用 del-node 脚本从 Redis Cluster 删除节点。例如,执行以下命令可以将一个节点从 Redis Cluster 中删除: ``` $ redis-cli --cluster del-node 127.0.0.1:7000 1234567890abcdef1234567890abcdef12345678 ``` 6. 扩展 Redis Cluster:使用 reshard 脚本可以扩展 Redis Cluster 的节点数量。例如,执行以下命令可以将 Redis Cluster 的节点数量扩展到 6 个: ``` $ redis-cli --cluster reshard 127.0.0.1:7000 ``` 在实际应用中,需要根据具体的业务场景和需求,选择合适的 Redis Cluster 集群方案。同时,在搭建 Redis Cluster 集群时,需要考虑到分布式环境下的各种异常情况,如网络延迟、节点故障等,从而设计出高可用、高性能、高可靠的 Redis Cluster 集群方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值