【大厂面试官】知道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
相关文章
|
16天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
237 0
|
25天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
202 2
|
30天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
194 0
|
1月前
|
编译器 C++ Python
【C/C++ 泡沫精选面试题02】深拷贝和浅拷贝之间的区别?
【C/C++ 泡沫精选面试题02】深拷贝和浅拷贝之间的区别?
32 1
|
1天前
|
NoSQL Redis
Redis入门到通关之Redis主从数据同步原理
Redis入门到通关之Redis主从数据同步原理
|
2天前
|
存储 NoSQL 算法
Redis 搭建分片集群
Redis 搭建分片集群
10 2
|
7天前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
129 8
Python与NoSQL数据库(MongoDB、Redis等)面试问答
|
18天前
|
缓存 NoSQL Java
面试官:Redis如何实现延迟任务?
延迟任务是计划任务,用于在未来特定时间执行。常见应用场景包括定时通知、异步处理、缓存管理、计划任务、订单处理、重试机制、提醒和数据采集。Redis虽无内置延迟任务功能,但可通过过期键通知、ZSet或Redisson实现。然而,这种方法精度有限,稳定性较差,适合轻量级需求。Redisson的RDelayedQueue提供更简单的延迟队列实现。
261 9
|
18天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
40 0
|
19天前
|
缓存 NoSQL 定位技术
深入探索Redis:面试中必须掌握的关键知识点
深入探索Redis:面试中必须掌握的关键知识点