扫码阅读
手机扫码阅读

为什么创建 Redis 集群时会自动错开主从节点?

179 2024-07-20

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:为什么创建 Redis 集群时会自动错开主从节点?
文章来源:
咸鱼运维杂谈
扫码关注公众号

在文章《一台服务器上部署 Redis 伪集群》中,作者"咸鱼"描述了如何在单台服务器上创建 Redis 集群并解释了 Redis 如何自动分配主从节点。

作者提到,在多服务器环境中,Redis 能智能地错开主节点和从节点的部署位置,例如,确保不同的主节点和从节点在同一台机器上。这种现象的背后是 Redis 的反亲和性原则,即防止主节点和从节点部署在同一个 IP 地址上。

Redis 集群的反亲和性得分是通过 clusterManagerGetAntiAffinityScore 函数计算的。得分高意味着亲和性高,得分低则反亲和性高。得分为零意味着完全满足反亲和性要求。得分是基于以下规则计算的:

  • 如果多个从节点与同一个主节点在相同 IP 上,每个从节点得分增加 10000。
  • 如果多个从节点在相同 IP 上但不是同一个主节点,每个从节点得分增加 1。

得分计算后,Redis 将对得分高的节点进行优化,通过 clusterManagerOptimizeAntiAffinity 函数来改善主从节点分布,减少反亲和性得分。

优化过程包括随机选择违反规则的从节点,并尝试与其他节点交换主节点,以获得更佳的反亲和性得分。如果交换后得分更高,则撤销交换;如果得分降低,则保持交换。这个过程会重复进行,直至达到最优反亲和性分布。

文章最后总结了 Redis 自动优化主从分布的过程,并提到了最后的收尾工作,主要是记录日志和释放内存等。

作者邀请读者通过"一键三连"支持他的写作。

想要了解更多内容?

查看原文:为什么创建 Redis 集群时会自动错开主从节点?
文章来源:
咸鱼运维杂谈
扫码关注公众号