【大厂面试官】知道Redis集群和Redis主从有什么区别吗

alt

面试官:上一期博客问了你Redis主从,现在考考你Redis集群吧


面试官:不用慌尽管说,错了也没关系😊。。。

面试官:知道Redis多机数据库有什么部署方式

知道的,主要有两种。

Redis主从复制、Redis集群。


面试官思考中…


面试官:那他们有什么区别

它们两者都是Redis高可用的解决方案,但偏向点不同。

Redis主从对数据的完整性更看重,主、从服务器都保存完整的一个数据库。

而Redis集群则对抗压能力更看重,整个集群的数据库整合起来是一个完整的数据库。要看业务做出不同的选择。

所以在功能上他们也有不同,Redis主从有哨兵,而Redis集群有分片。

alt


面试官思考中…


面试官:那Redis集群怎么实现负载均衡的

主要是通过我刚刚提到的分片功能。

集群的话通过分片的方式来保存数据库中的键值对,集群的整个数据库被分为16384个槽,而集群中的每个节点可以处理这里面的0个或最多16384个槽。

这样的话,对键值对的增删改查就可以负载均衡地下落到各个集群的节点中。


面试官思考中…


面试官:要是热点数据都是某个Redis节点的槽,负载均衡不是没用了?

噢噢,这种情况的话,Redis集群有重新分片的功能。

重新分片操作可以将任意数量已经指派给某个节点的槽改为指派给另一个节点,相关槽所属的键值对也会从源节点被移动到目标节点。

更重要的是,重新分片是可以在线进行的,集群不需要下线,源节点和目标节点也都可以继续处理命令请求。

像面试官说的这种情况,可以在线上环境紧急把相关热点槽指派给其他节点处理。

alt


面试官思考中…


面试官:还有其他方法吗

emmmm我想想,还可以对这些槽负责的Redis节点配置从服务器。

主节点用于处理槽,而从服务器可以用来分担读的压力,如果主节点失效了,从节点会成为主节点代替它继续工作。

alt


面试官思考中…


面试官:集群里没有哨兵,那他们怎么选举主节点的

选举的话是集群中自带的机制,不需要哨兵的支持。

不过和哨兵选举领头哨兵一样是先到先得,而且他们投票的对象是集群中的其他节点

集群里每个负责处理槽的主节点都有一次投票的机会,而第一个向主节点要求投票的从节点将获得主节点的投票。获得半数支持的从节点就可以成为主节点。


面试官思考中…


面试官:最后问你一个,集群里节点怎么进行故障检测的

集群节点之间的故障检测和Redis主从中的哨兵检测很类似,都是通过PING消息来检测的。。。

面试官抓抓脑袋,继续看你的简历......


得想想考点你不懂的😰

未完待续。。。。。。

好了,今天的分享就先到这,我们下期大厂面试演练继续。

创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

#面试##大厂面试##Redis##Java面试##Redis面试#
Java Offer训练营 文章被收录于专栏

👉以贴近现实的【面试官面试】形式帮助你系统学习后端技术 👉成体系知识帮你在后端进阶,每一道问答助你怒怼大厂面试官,收获大厂offer 👉《后端训练营》包含Redis系列、MySQL系列、Kafka系列、ZooKeeper系列、JVM系列、多线程系列等等 👉制作不易,各位的支持是我创作的最大动力

全部评论
面试官:得想个办法把这人刷了……
2 回复
分享
发布于 03-13 10:13 上海
666
点赞 回复
分享
发布于 04-20 21:49 广东
联易融
校招火热招聘中
官网直投
大佬牛
点赞 回复
分享
发布于 04-25 23:40 广东

相关推荐

3 10 评论
分享
牛客网
牛客企业服务