【Redis基础】一起读懂Redis主从架构、哨兵模式、集群(Demo详解)

举报
辰兮 发表于 2022/03/22 22:38:49 2022/03/22
【摘要】 【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、...

【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿我们奔赴在各自的热爱里…


一、主从架构

本期和大家一起入门学习Redis主从架构、哨兵模式、集群相关基础概念!

主从同步:Master节点接收到写请求并处理后,需要告知Slave节点数据发生了改变,保持主从节点数据一致的行为称为主从同步

在这里插入图片描述

读写分离: 在redis主从架构中,Master节点负责处理写请求,Slave节点只处理读请求。对于写请求少,读请求多的场景

在这里插入图片描述


一主多从:架构优化

如果有很多从节点,为了缓解主从复制风暴(多个从节点同时复制主节点导致主节点压力过大),可以做如下架构,让部分从节点与从节点(与主节点同步)同步数据

在这里插入图片描述

如果主master挂掉?

如果某一个实例master挂掉,我们需要手动把一台从服务器切换为主服务器,还会造成一段时间内服务不可用。

为了解决主从模式不能高可用的问题,就发明了哨兵模式


二、哨兵模式

哨兵是什么

1、sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。

2、哨兵模式是一种特殊的模式,Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

哨兵主要作用

1、通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。

2、当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

在这里插入图片描述

当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis主节点通知给client端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)

哨兵模式,一定是基于redis主从复制模式下做的

总结:哨兵模式,就是在原来的主从架构的基础上,又搞了一个集群,哨兵集群,这个集群会监控redis集群的主节点和从节点的状态,如果发现主节点挂了,就会重新在从节点中选出来一个作为主节点,从而做到高可用。


三、集群模式

Redis集群解释

Redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。

Redis集群架构图
在这里插入图片描述
Redis3.0以前:配置说明

1、在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态

2、如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般

3、特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率


Redis集群:不需要sentinel哨兵

1、Redis集群不需要sentinel哨兵,也能完成节点移除和故障转移的功能。

2、需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。

3、redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单


本期基础Redis主从架构、哨兵模式、集群图文讲解,后续再陆续更新,下期见……


非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

2021年11月26日22:42:21 愿我们奔赴在自己的热爱里!

文章来源: blessing.blog.csdn.net,作者:辰兮要努力,版权归原作者所有,如需转载,请联系作者。

原文链接:blessing.blog.csdn.net/article/details/121570077

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。