老师,你好!咨询下redis集群数据迁移

来源:7-5 本章小结

寻找小方

2018-04-06

老师,你好。能不能讲下实际生产中,redis集群节点新增或减少之后,一般是怎么进行数据迁移的?

另外如果能讲下redis3的集群方式就更好了

写回答

4回答

Geely

2018-04-07

@寻找小方 明白你的问题了哈~~我第一个回答还给扩展了下,是这样的,在一致性新增节点或者删除节点的时候,在那个瞬间会导致缓存的命中率下降,所以缓存的部分,可以通过另外一个定时任务进行预热,或者本身业务miss之后可以自动填补cache来解决这个问题。我们生产环境是会自动跑一个定时任务预热,同时业务中也有会miss cache弥补的动态开关。

0
0

寻找小方

提问者

2018-04-07

终于想清楚怎么简洁点问了

新增节点之后,后面的数据根据hash算法,会落到正确的节点,但是新增节点之前的,落到新增之前节点的数据,加入有部分重新hash之后,应该落到新增节点,这些数据是怎么迁移到新增节点的

0
0

寻找小方

提问者

2018-04-07

可能我描述的不太清楚,再请教一下老师。

一致性hash的原理我已经清楚了,比如现在集群2台redis服务器,现在新增一台,RedisShardedPool
代码中初始化ShardedJedisPool的时候,新增一个JedisShardInfo放到List<JedisShardInfo>集合即可。我不太明白的时候,新增或者更改redis服务器,仅仅这样配置一下?节点变更之后,节点之间的数据是通过什么途径转移到对应节点的?


简单描述,是这样

1、节点变更之后,原有节点的部分数据需要转移节点,这个操作通常是怎么来完成的,我自己测试了一把,原来2台节点,后面新增一台几点,验证完之后,发现原来的2个节点数据增多,也就是说之前的数据并没有自动迁移

0
0

Geely

2018-04-07

你好同学,很好的问题,一般我们是这样的,现在我们使用的也是3.x以下的,数据迁移首先配置了slave,定期对slave进行备份,增加节点和减少节点就用一致性hash来处理,动态增加节点和减少节点。另外灾备方面使用redis的哨兵机制来解决。

嗯,redis3下面的cluster以后也会进行升级讲解的。

0
0

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程