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

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 集群节点之间的故障检测和Redis主从中的哨兵检测很类似,都是通过PING消息来检测的。。。面试官抓抓脑袋,继续看你的简历…得想想考点你不懂的😰。

在这里插入图片描述

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


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


每日分享大厂面试演练,本期是《Redis系列》,感兴趣就关注我吧❤️

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

知道的,主要有两种。

Redis主从复制、Redis集群。


面试官思考中…


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

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

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

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

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

在这里插入图片描述


面试官思考中…


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

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

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

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


面试官思考中…


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

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

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

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

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

在这里插入图片描述


面试官思考中…


面试官:还有其他方法吗

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

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

在这里插入图片描述


面试官思考中…


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

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

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

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


面试官思考中…


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

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

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


得想想考点你不懂的😰

未完待续。。。。。。

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

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

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
8天前
|
负载均衡 监控 NoSQL
Redis的几种主要集群方案
【5月更文挑战第15天】Redis集群方案包括主从复制(基础,读写分离,手动故障恢复)、哨兵模式(自动高可用,自动故障转移)和Redis Cluster(官方分布式解决方案,自动分片、容错和扩展)。此外,还有Codis、Redisson和Twemproxy等工具用于代理分片和负载均衡。选择方案需考虑应用场景、数据量和并发需求,权衡可用性、性能和扩展性。
183 2
|
8天前
|
存储 监控 负载均衡
保证Redis的高可用性是一个涉及多个层面的任务,主要包括数据持久化、复制与故障转移、集群化部署等方面
【5月更文挑战第15天】保证Redis高可用性涉及数据持久化、复制与故障转移、集群化及优化策略。RDB和AOF是数据持久化方法,哨兵模式确保故障自动恢复。Redis Cluster实现分布式部署,提高负载均衡和容错性。其他措施包括身份认证、多线程、数据压缩和监控报警,以增强安全性和稳定性。通过综合配置与监控,可确保Redis服务的高效、可靠运行。
180 2
|
8天前
|
NoSQL 安全 Unix
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅(中)
Redis源码、面试指南(4)单机数据库、持久化、通知与订阅
18 0
|
1天前
|
缓存 NoSQL Redis
Java技术栈Redis面试总结(全面,实时更新)
Java技术栈Redis面试总结(全面,实时更新)
|
6天前
|
索引
【ES6新语法】let、const、var的区别,你学会了面试官没话说
【ES6新语法】let、const、var的区别,你学会了面试官没话说
|
6天前
|
前端开发
vue2与vue3双向数据绑定的区别,前端面试自我介绍
vue2与vue3双向数据绑定的区别,前端面试自我介绍
|
7天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
7天前
|
开发工具 Python
Python中return和yield的区别,面试官不讲武德
Python中return和yield的区别,面试官不讲武德
|
7天前
|
存储 缓存 NoSQL
实战:第十一篇:StringRedisTemplate获取redis信息,面试官突击一问
实战:第十一篇:StringRedisTemplate获取redis信息,面试官突击一问
|
7天前
|
消息中间件 前端开发 Java
java面试刷题软件kafka和mq的区别面试
java面试刷题软件kafka和mq的区别面试