【面试官】我看你简历写了Redis集群,你说一说?
- 面试官:我看你简历写了Redis集群,你说一说?
- 面试官:那Redis集群怎么实现负载均衡的?
- 面试官:要是热点数据都是某个Redis节点的槽,负载均衡不是没用了?
- 面试官:Redis集群的主从模型,知道吗?
- 面试官:那集群里怎么选举主节点的?
大家好,我是南哥。
一个Java学习与进阶的领路人,相信对你通关面试进入心心念念的公司有所帮助。
文章目录
- Redis集群
- 集群概念
- 集群分片
- 重新分片
- 集群的主从模型
- 主从模型
- 主节点选举
1. Redis集群
1.1 集群概念
面试官:我看你简历写了Redis集群,你说一说?
Redis主从架构和Redis集群架构是两种不同的概念,大家刚接触Redis时经常弄混淆。南哥给大家贴下Redis官网对两者的解释。
(1)Redis主从架构
Redis主从实现了有一个易于使用和配置的领导者跟随者复制,它允许副本 Redis 实例成为主实例的精确副本。
(2)Redis集群架构
Redis 集群将数据自动分片到多个 Redis 节点,Redis 集群还在分区期间提供一定程度的可用性,当某些节点发生故障或无法通信时,Redis集群能够继续运行。
它们两者都是Redis高可用的解决方案,但偏向点不同。Redis主从对数据的完整性更看重,Redis主从节点都保存了完整的一套数据库状态。
而Redis集群则对抗压能力更看重,整个集群的数据库整合起来才是一个完整的数据库。
在功能性上它们也有不同,Redis主从有哨兵,而Redis集群有分片。我们要看业务选择不同的Redis方案,当然,Redis集群还可以搭配Redis主从一起使用,我们可以在某一个集群节点上配置一套主从模型。
如果要6002、6003节点添加到6001节点的Redis集群里,我们可以使用以下命令。
127.0.0.1:6001> CLUSTER MEET 127.0.0.1 6002
OK
127.0.0.1:6001> CLUSTER MEET 127.0.0.1 6003
OK
1.2 集群分片
面试官:那Redis集群怎么实现负载均衡的?
大家要记住Redis集群一个很重要的知识点,那就是分片。
Redis集群通过分片的方式来保存数据库中的键值对,Redis集群把整个数据库分为16384个槽,而集群中的每个节点可以处理这里面的0个或最多16384个槽。
假如南友们在公司里配置了一个包含 3 个节点的集群,那么这3个节点的槽分配会是这样的:
- 节点 A 包含从 0 到 5500 的哈希槽。
- 节点 B
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
👉以面试官面试的形式,涵盖了你怒怼大厂面试官、拿下大厂面试所需掌握的核心知识、面试重点 👉相信一定对你顺利通关面试、拿到理想Offer有所帮助 👉花费大量精力去制作本专栏,创作不易,各位的支持就是我创作的最大动力