redis-cluster 迁移过程错误记录

因为集群内的 单点redis消耗 内存达到了14个G,所以需要增加新的节点,并将数据迁移过去,使用 redis-trib reshard ip:port

A : 2105slot       14.5g,     B: 0 slot 0g

我从A到B 迁移了 1000slot, A的slot数目减少了,但是内存消耗并没有减少,以下是迁移后的状态

A:  1105slot        14.5g      B:1000slot  7.6g

不知道为什么,这个有知道的朋友留言帮我解答下。

我想着 那我再开一个C 把A的 剩余1105slot 迁移出来,迁移完 就把A干掉,就把内存释放了。

A->C的过程中,会频繁报错 ERR Target instance replied with error: CLUSTERDOWN The cluster is down( 可以使用 redis-trib fix ip:port 进行修复.)

寻找原因时候发现 有博文(点击跳转链接)可能存在较大key ,同步时候超时了。我按照他的查看方式,查了下 报错slot的 key(我用的是Set类型), 我的神,我的Set中44w个值。(之前有发现app里报错 too many redirection,一直没有找到原因,不知道和这个有关系没,有经验的朋友点明一下)。这个key对于我没有意义了,直接del。 fix后,继续reshard 就ok了。

迁移完成后

A: 0slot     58M        C 1105slot 7.5g

经验: 以后使用数据库的时候,单个key还是不宜过大,这个应该在app层有控制。

时间: 2024-10-11 16:14:43

redis-cluster 迁移过程错误记录的相关文章

Redis Cluster 4.0高可用集群安装、在线迁移操作记录

之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑到是线上生产环境,决定在线迁移,迁移过程,不中断服务.操作过程如下: 一.机器环境 1 2 3 4 5 6 7 8 9 10 11 12 13 迁移前机器环境 ----------------------------------------------------------------------

全面剖析Redis Cluster原理和应用 (转)

1.Redis Cluster总览 1.1 设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子.最核心的目标有三个: 性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式.异步复制.客户端重定向等设计,而牺牲了部分的一致性.使用性. 水平扩展:集群的最重要能力当然是扩展,文档中称可以线性扩展到1000结点. 可用性:在Cluster推出之前,可用性要靠Sentinel

全面剖析Redis Cluster原理和应用

全面剖析Redis Cluster原理和应用 1.Redis Cluster总览 1.1 设计原则和初衷 在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子.最核心的目标有三个: 性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式.异步复制.客户端重定向等设计,而牺牲了部分的一致性.使用性. 水平扩展:集群的最重要能力当然是扩展,文档中称可以线性扩展到1000结点. 可用性:在Cl

Redis Cluster集群总结性梳理

前面已经介绍了Redis Cluster集群及其部署过程,下面再补充下有关Redis Cluster应用原理部分内容,以便更加深刻透彻地理解Redis Cluster. 一.Redis Cluster集群最核心的三个目标 性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式.异步复制.客户端重定向等设计,而牺牲了部分的一致性.使用性. 水平扩展:集群的最重要能力当然是扩展,文档中称可以线性扩展到1000结点. 可用性:在C

Redis cluster集群模式的原理

redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放一部分数据 提供内置的高可用支持,部分master不可用时,还是可以继续工作的 支撑N个redis master node,每个master node都可以挂载多个slave node 高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave

redis cluster

Redis cluster 介绍 Redis在3.0版正式引入了集群特性.Redis集群是一个分布式(distributed).容错(fault-tolerant)的 Redis内存K/V服务, 普通单机 Redis 使用的功能 仅是集群中的功能的一个子集(subset).Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误. Redis集群的几个重要特征: (1).Redis 集群的分片特征在

Redis Cluster 添加/删除 完整折腾步骤

Redis还是挺好玩的,今天测试了集群的添加.删除节点.重分配slot等.更深入的理解redis的游戏规则.步骤繁多,但是详细. 环境解释: 我是在一台Centos 6.9上测试的,各个redis节点以端口号区分.文中针对各个redis,我只是以端口号代表. ~~~~Master Node~~~~~ 172.16.32.116:7000 172.16.32.116:7001 172.16.32.116:7002 ~~~~Slave Node~~~~~ 172.16.32.116:8000 172

Redis cluster Specification 笔记

ref: http://redis.io/topics/cluster-spec 1. 设计目标: 高性能:线性扩展:不支持合并操作:写操作安全:小概率丢弃:(对于每个key)只要有一个slave工作,就可用: Redis Cluster is a distributed implementation of Redis with the following goals, in order of importance in the design: High performance and line

Redis cluster集群原理及搭建

一.集群原理 架构 Redis cluster使用去中心化的思想,整个集群是分布式的.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. 客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,只要连接集群中任意一个可用节点即可. Redis集群数据分片(Redis cluster data sharding)不使用一致性哈希算法,而是采用哈希槽(hash slot)的方式.集群中内置了 16384 个哈希槽(编号0-1638