老师,你好!咨询下redis集群数据迁移
来源:7-5 本章小结
寻找小方
2018-04-06
老师,你好。能不能讲下实际生产中,redis集群节点新增或减少之后,一般是怎么进行数据迁移的?
另外如果能讲下redis3的集群方式就更好了
4回答
-
@寻找小方 明白你的问题了哈~~我第一个回答还给扩展了下,是这样的,在一致性新增节点或者删除节点的时候,在那个瞬间会导致缓存的命中率下降,所以缓存的部分,可以通过另外一个定时任务进行预热,或者本身业务miss之后可以自动填补cache来解决这个问题。我们生产环境是会自动跑一个定时任务预热,同时业务中也有会miss cache弥补的动态开关。
00 -
寻找小方
提问者
2018-04-07
终于想清楚怎么简洁点问了
新增节点之后,后面的数据根据hash算法,会落到正确的节点,但是新增节点之前的,落到新增之前节点的数据,加入有部分重新hash之后,应该落到新增节点,这些数据是怎么迁移到新增节点的
00 -
寻找小方
提问者
2018-04-07
可能我描述的不太清楚,再请教一下老师。
一致性hash的原理我已经清楚了,比如现在集群2台redis服务器,现在新增一台,RedisShardedPool
代码中初始化ShardedJedisPool的时候,新增一个JedisShardInfo放到List<JedisShardInfo>集合即可。我不太明白的时候,新增或者更改redis服务器,仅仅这样配置一下?节点变更之后,节点之间的数据是通过什么途径转移到对应节点的?简单描述,是这样
1、节点变更之后,原有节点的部分数据需要转移节点,这个操作通常是怎么来完成的,我自己测试了一把,原来2台节点,后面新增一台几点,验证完之后,发现原来的2个节点数据增多,也就是说之前的数据并没有自动迁移
00 -
Geely
2018-04-07
你好同学,很好的问题,一般我们是这样的,现在我们使用的也是3.x以下的,数据迁移首先配置了slave,定期对slave进行备份,增加节点和减少节点就用一致性hash来处理,动态增加节点和减少节点。另外灾备方面使用redis的哨兵机制来解决。
嗯,redis3下面的cluster以后也会进行升级讲解的。
00
相似问题