Redis集群伸缩,转移插槽失败

简介: Redis集群伸缩时出现插槽转移失败,提示节点配置不一致及存在导入中插槽。需登录对应实例,如`redis-cli -c -p 7004`,根据警告信息获取异常slot ID(如0),执行`cluster setslot 0 stable`取消迁移,恢复集群一致性后方可重新平衡。

Redis集群伸缩,转移插槽失败
1.现象

运行代码
复制代码
1
2
3
4
5
6
7
[ERR] Nodes don't agree about configuration!

Check for open slots...
[WARNING] Node 192.168.206.129:7004 has slots in importing state 0.
[WARNING] The following slots are open: 0.
Check slots coverage...
[OK] All 16384 slots covered.
* Please fix your cluster problems before rebalancing
2.解决方案
登录对应IP+端口的Redis实例
以上为例,则我登录:
redis登录

运行代码
复制代码
1
redis-cli -c -p 7004
执行数据取消slots迁移
错误日志中,有个非常重要的信息:
节点 192.168.206.129:7004 在导入状态 0 中设有插槽。
其中这个state后面的参数,标识当前slot的ID,因此我们要取这个作为接下来的命令执行参数
取消slots迁移

运行代码
复制代码
1
cluster setslot 0 stable
注意:每个人对应的ID可能不一样,这里就需要调整。

相关文章
|
1天前
|
JavaScript 前端开发 Java
04-Dockerfile示例
本文介绍了三个模块的Docker镜像构建方式:app-web模块打包为war,基于Tomcat镜像;system-server模块为SpringBoot jar包,使用OpenJDK镜像;vue项目则通过Nginx或旧版httpd镜像部署,实现前端静态文件服务。
|
1天前
|
缓存 算法 Java
线程池
本文深入剖析Java线程池实现原理,涵盖ThreadPoolExecutor与ScheduledThreadPoolExecutor核心源码,解析线程复用、任务队列、拒绝策略及周期调度机制,并详解ThreadLocal与InheritableThreadLocal原理,助力掌握高效并发编程。
|
1天前
|
Java API
用数组实现队列/栈
使用数组实现栈时,可将动态数组尾部作为栈顶,利用ArrayList的add和remove方法实现O(1)时间复杂度的入栈、出栈操作。若以头部为栈顶,则需借助环形数组(如CycleArray)实现高效操作。同样,基于环形数组还可轻松实现队列,通过addLast入队、removeFirst出队,满足队列先进先出特性,所有操作均保持O(1)时间复杂度。
|
1天前
|
Java 大数据
ArrayList扩容机制
ArrayList添加元素时,先调用ensureCapacityInternal()确保容量,首次添加时默认扩容至10。每次扩容通过grow()实现,新容量为原容量的1.5倍(oldCapacity + (oldCapacity >> 1)),提升性能。当元素数超过当前容量时触发扩容,保证后续添加不越界。注意:length用于数组,length()用于字符串,size()用于集合。
|
1天前
|
存储 固态存储 关系型数据库
特别加餐 | 高性能检索系统中的设计漫谈
本文系统梳理了高性能检索系统中的四大核心设计思想:索引与数据分离、减少磁盘IO、读写分离和分层处理。通过案例解析与对比分析,深入探讨其本质与适用场景,并总结通用实践经验,帮助开发者在实际系统设计中提升性能与可维护性,构建高效稳定的高并发系统。
|
1天前
|
存储 算法 搜索推荐
01 | 线性结构检索:从数组和链表的原理初窥检索本质
本文探讨数组与链表的检索原理及效率。数组支持随机访问,适合二分查找,检索效率为O(log n);链表需顺序遍历,效率为O(n),但插入删除更高效。通过合理组织数据结构,如结合数组与链表优点,可优化检索性能,核心在于快速缩小查询范围。
|
1天前
|
监控 Java 应用服务中间件
微服务保护Sentinel
本课程系统讲解微服务雪崩问题及Sentinel解决方案,涵盖限流、熔断、隔离、降级等核心机制。通过实战掌握Sentinel部署、三种流控模式(直接、关联、链路)、四种流控效果(快速失败、预热、排队)、Feign整合、线程隔离与授权规则,并了解规则持久化方案,全面提升微服务稳定性与高可用能力。
17 0
|
1天前
|
消息中间件 存储 NoSQL
Mac系统安装教程
本文介绍在Mac系统上安装RabbitMQ的两种方法:通过Homebrew一键安装和二进制文件手动安装。RabbitMQ是基于AMQP协议的开源消息代理,支持异步通信、解耦服务,在微服务架构中广泛应用。教程涵盖安装、启动、验证全过程,附官网及参考链接,适合初学者快速上手部署。
18 0
|
1天前
|
SQL 容灾 Nacos
Seata的部署和集成
本文介绍Seata分布式事务框架的部署与集成。首先下载并解压seata-server-1.5.1,修改application.yml配置,将seataServer.properties配置上传至Nacos作为统一配置中心,并创建所需数据库表。启动tc-server后,注册到Nacos,通过控制台可查看服务状态。各微服务需引入Seata依赖,并在application.yml中配置相关参数。为实现高可用,可搭建多节点TC集群,如GZ和HZ集群,通过Nacos统一管理事务组映射,微服务从Nacos读取client.properties配置,动态切换TC集群连接,提升系统容灾能力。
13 0
|
1天前
|
存储 缓存 NoSQL
分布式缓存Redis(高级)
本课程深入讲解Redis高级应用,涵盖持久化机制(RDB/AOF)、主从同步、哨兵集群、分片集群搭建与故障转移,结合SpringBoot实战RedisTemplate集成,助力掌握高可用、高性能的分布式缓存架构设计与落地。
15 0