碾压阿里面试官,RedisCluster集群全网最全知识点(上)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 碾压阿里面试官,RedisCluster集群全网最全知识点

为什么需要Redis Cluster?


  • 并发量
    redis 本身 10w/s,但的业务已经需要100 w/s 了
  • 数据量
    一个 redis 及其内存 16~256G,但我们的业务就是强,需要 500G 了


解决问题的办法不止于简单地加机器。

并发量大了 =》 主从复制解决 =》主从稳定性 =》哨兵解决 =》单节点的写能力、存储能力、动态扩容都很麻烦 =》集群Cluster解决。

Redis Cluster集群模式具有高可用、可扩展性、分布式、容错等特性,在 3.0 闪亮发布。

那你介绍下Redis Cluster的架构?

  • 单机架构

image.png

  • 分布式架构

image.png

  • Redis Cluster 架构
    节点
    meet
    指派槽
    复制
  • 节点

image.png

  • meet

image.png

image.png

  • 指派槽

image.png

  • 客户端与指派槽

image.png

Redis Cluster特性:

复制、高可用、分片

Redis分布式服务端及客户端启动

修改两个redis的配置文件redis.conf

修改端口一个为6379,另一个为6380

通过配置文件启动redis-server

redis-server ${redis[0-1]}${redis.conf}

集群 V.S 分布式

  • 分布式:不同的业务模块拆分到不同机器,解决高并发的问题。 工作形态 redis服务器各工作方式不同一般称为Redis分布式
  • 集群(cluster)

同一个业务部署在多台机器上,提高系统可用性。是物理形态,一般称Tomcat集群。集群就是一组计算机,它们作为整体向用户提供一组网络资源, 这些单个的计算机系统就是集群的节点(node)。

集群可能运行着一个或多个分布式系统,也可能根本没有运行分布式系统;分布式系统可能运行在一个集群上,也可能运行在不属于一个集群的多台(2台也算多台)机器上。


集群提供了以下关键的特性:

  • 可扩展性
  • 高可用性
  • 负载均衡
  • 错误恢复


分布式与集群的联系与区别:

  • 分布式即分开部署。集群指的是将几台服务器集中在一起,实现同一业务
  • 分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的


比如客户端有10个用户,同时分别发送了1个请求,若不是集群,则这10个请求需要并行在一台机器上处理,如果每个请求都是1s,则有一人要等待10s,有一个人等待9s…

而在集群下,10个任务并分发到10台机器同时进行,则每人等待时间都是1s。

Redis Cluster 安装配置

两种安装:

原生命令安装

理解架构

1.配置开启节点

2. meet

3.指派槽

4.主从

官方工具安装

1.配置开启节点

2. meet

3.指派槽

4.主从


配置开启Redis-1:

port ${port}
daemonize yes
dir "/opt/redis/redis/data/"
dbfilename "dump-${port}.rdb"
logfile "${port}.log"
cluster-enabled yes
cluster-config-file nodes-${port}.conf

配置开启Redis-2

redis-server redis-7000.conf
redis-server redis-7001.conf
redis-server redis-7002.conf
redis-server redis-7003.conf
redis-server redis-7004.conf
redis-server redis-7005.conf

image.png

image.png

image.png

Redis 3.0后,节点之间通过去中心化,提供了完整的shardingreplication(复制机制仍使用原有机制,并且具备感知主备的能力)、failover解决方案,称为Redis Cluster。

即:将proxy/sentinel的工作融合到了普通Redis节点。

Redis Cluster 集群架构

Redis Cluster采用无中心结构,每个节点都可以保存数据和整个集群状态,每个节点都和其他所有节点连接。要让集群正常运作至少需要三个主节点,即Cluster 至少为6个才能保证组成完整高可用的集群,三主三从:

  • 主节点分配槽,处理客户端的命令请求
  • 从节点可用在主节点故障后,顶替主节点

image.png

集群架构为拓扑结构。一个Redis Cluster由多个Redis节点组成。不同的节点组服务的数据无交集,每个节点对应数据sharding的一个分片。


节点组内部分为主备2类,对应masterslave。两者数据准实时一致,通过异步的主备复制保证。


一个节点组有且仅有一个master,同时有0到多个slave。只有master对外提供写服务,读服务可由master/slave提供

相关实践学习
基于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
目录
相关文章
|
13天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
26 2
|
13天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
30 2
|
13天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
25 1
|
3月前
|
消息中间件 负载均衡 监控
【面试问题】RabbitMQ 的集群
【1月更文挑战第27天】【面试问题】RabbitMQ 的集群
|
1月前
|
消息中间件 NoSQL 网络协议
Java面试知识点复习​_kaic
Java面试知识点复习​_kaic
|
5天前
|
数据可视化 Python
Python模型评估与选择:面试必备知识点
【4月更文挑战第17天】本文深入探讨了Python模型评估与选择在面试中的关键点,包括性能度量、过拟合与欠拟合识别、模型比较与选择、模型融合和偏差-方差权衡。强调了避免混淆评估指标、忽视模型验证和盲目追求高复杂度模型的常见错误,并提供相关代码示例,如交叉验证、网格搜索和超参数调优。通过理解这些概念和技巧,可在面试中展示出色的数据科学能力。
31 12
|
13天前
|
机器学习/深度学习 分布式计算 BI
Flink实时流处理框架原理与应用:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Flink实时流处理框架的原理,包括运行时架构、数据流模型、状态管理和容错机制、资源调度与优化以及与外部系统的集成。此外,还介绍了Flink在实时数据管道、分析、数仓与BI、机器学习等领域的应用实践。同时,文章提供了面试经验与常见问题解析,如Flink与其他系统的对比、实际项目挑战及解决方案,并展望了Flink的未来发展趋势。附带Java DataStream API代码样例,为学习和面试准备提供了实用素材。
35 0
|
14天前
|
分布式计算 资源调度 监控
Hadoop生态系统深度剖析:面试经验与必备知识点解析
本文深入探讨了Hadoop生态系统的面试重点,涵盖Hadoop架构、HDFS、YARN和MapReduce。了解Hadoop的主从架构、HDFS的读写流程及高级特性,YARN的资源管理与调度,以及MapReduce编程模型。通过代码示例,如HDFS文件操作和WordCount程序,帮助读者巩固理解。此外,文章强调在面试中应结合个人经验、行业动态和技术进展展示技术实力。
|
17天前
|
缓存 NoSQL 定位技术
深入探索Redis:面试中必须掌握的关键知识点
深入探索Redis:面试中必须掌握的关键知识点
|
1月前
|
存储 缓存 Java
什么!?实战项目竟然撞到阿里面试的原题!???关于MyBatis Plus的缓存机制
什么!?实战项目竟然撞到阿里面试的原题!???关于MyBatis Plus的缓存机制