老师您好,有个问题请解答一下,谢谢。

来源:10-1 集群伸缩目录

达闻西funnyx

2018-11-01

在节点取余或者一致性hash这种设计中,或多或少都会有数据的迁移问题,但是在Redis Cluster这种架构中,有虚拟槽的概念,那现在如果有A,B,C三个节点,槽的分配都完整了,那如果现在再加一个节点D,是否需要把一部分槽要转移到D节点中,那之前槽中的数据是否也是被迁移到了D节点上,这是否也是属于之前的数据迁移呢?还有另一个问题,就是虚拟槽的概念能否类比与ConcurrentHashMap中的segment来理解呢?

写回答

1回答

melanch_0001

2018-11-18

问题1:课程10-5里面有讲,加入一个节点后需要迁移槽以及数据。

问题2:segment是concurrentHashMap 1.7的东西。1.8没有segment的概念。个人感觉这个槽更类似于数组中的一个格子。也就是hashmap这种结构实现的时候,要把元素放进去,先用hashkey 求得放到数组的那个位置里面而已。所以按照你的想法这个槽相当于是segment的一部分。

0
0

一站式学习Redis 从入门到高可用分布式实践

Redis课程升级!系统梳理Redis知识体系,掌握redis必备!

2277 学习 · 261 问题

查看课程