有两篇文章不错,可以看下:
1,初步理解redis cluster:https://blog.csdn.net/dc_726/article/details/48552531
2,仔细理解redis cluster的扩容和缩容:https://www.jianshu.com/p/c67041648309
笔记:redis cluster是通过固定分配的方式查找key所在的节点的,hash(key) % 16383,得到的结果是一个整数。
redis会存储:
slotA-slotB => node1
slotC-slotD => node2
slotE-slotF => node3
...
这样固定分配slot-id到对应的node上的。
当扩容时,把之前的slot节点,分配出去一部分。然后把数据也迁移到新的节点上,然后通知cluster新的节点对应了哪些slot,通知成功后完成扩容。
当缩容时,把要删除节点的slot分配到其它节点上,把数据迁移过去,通知cluster 新的slot分配关系已经改变,通知成功后完成缩容。
redis的扩容和缩容时需要手工干预的。OVER!