k8s 手动恢复redis 集群_高工面试之:redis的几种集群方式你都熟悉吗?

Redis三种集群方式:主从复制、哨兵模式和Cluster模式

一、主从复制模式

Redis配置成主从模式,主库(Master)只负责客户端的写数据,从库(Slave)只负责客户端的读数据。

主从数据复制过程如图所示:

0d718835c54850cddee5a1823f47c9fa.png

主从复制原理:

  • slave redis连接master redis,发送sync命令;
  • master redis接收到sync命名后,执行BGSAVE命令生成RDB文件,使用缓冲区记录此后执行的所有写命令;
  • master redis BGSAVE执行完后,向所有slave redis发送快照文件,并在发送期间继续记录被执行的写命令;
  • slave redis收到快照文件后丢弃所有旧数据,载入收到的快照;
  • master redis快照发送完毕后开始向slave redis发送缓冲区中的写命令;
  • slave redis器完成对快照的载入,开始接收命令请求,并执行来自master redis缓冲区的写命令;
  • master redis每执行一个写命令就会向slave redis发送相同的写命令,slave redis接收并执行收到的写命令

主从复制优缺点:

优点:

  • 实现读写分离:客户端从master redis写数据,从slave redis读数据
  • 支持主从复制:master redis自动将数据同步到slave redis
  • Slave分载Master的同步压力:slave可以接受其它Slaves的连接和同步请求
  • Master Server是以非阻塞的方式为Slaves提供服务:在Master-Slave同步期间,客户端仍然可以提交查询或修改请求
  • Slave Server同样是以非阻塞的方式完成数据同步:在同步期间,如果有客户端提交查询请求,Redis则返回同步之前的数据

缺点:

  • 不具备自动容错和恢复功能:主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复;宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性
  • 较难支持在线扩容:在集群容量达到上限时在线扩容会变得很复杂。

二、哨兵模式

哨兵模式:

在主从复制模式中当主服务器中断服务后,需要人工手动操作来将一个从服务器升级为主服务器,以便继续提供服务。而哨兵模式可以实现自动化的系统监控和故障恢复功能。

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

79607512a683f8966433bebbc1c3c19f.png

哨兵的作用:

  • 监控主服务器和从服务器是否正常运行。
  • 主服务器出现故障时自动将从服务器转换为主服务器

故障切换(failover)过程:

假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。

哨兵除了监控服务器,哨兵之间也相互监控,如下图所示:

0eb1258135f5d5dbc1d00e847dbc1bfa.png

哨兵模式的优缺点

优点:

  • 基于主动复制模式,主从复制模式的所有优点都有
  • 主从可以自动切换,系统更健壮,可用性更高

缺点:

  • 很难支持在线扩容,在线扩容复杂

三、Redis-Cluster集群

现在很多公司采用的是这种redis集群模式。

redis的哨兵模式基本已经可以实现高可用,读写分离 ,但是在这种模式下每台redis服务器都存储相同的数据,很浪费内存,所以在redis3.0上加入了cluster模式,实现的redis的分布式存储,也就是说每台redis节点上存储不同的内容。解决了前面哨兵模式扩容复杂的问题。

Cluster集群模式是在哨兵模式的基础上进行升级改造:

  • 集群节点复制:遵循前面讲到的主从复制模式的节点复制方式
  • 故障转移:和前面讲到的哨兵模式进行故障转移的方法基本一样,不同的是,在集群里面,故障转移是由集群中其他在线的主节点负责进行的,所以集群不必另外使用Redis Sentinel。
  • 集群分片策略: 每台redis节点上存储不同的内容

Redis Cluster的具体实现细节:

采用了Hash槽的概念,集群会预先分配16384个槽,并将这些槽分配给具体的服务节点,通过对Key进行CRC16(key)%16384运算得到对应的槽是哪一个,从而将读写操作转发到该槽所对应的服务节点。当有新的节点加入或者移除的时候,再来迁移这些槽以及其对应的数据。在这种设计之下,我们可以很方便的进行动态扩容或缩容,目前很多公司都倾向于这种集群模式。

如下图所示:

fa82d5ecc23654517d258fcb5059dd26.png

面试不可怕,掌握真正的精髓可以让你一击即中。

更多学习过程中笔记源码分享

089f9e7d281970318f103cb95f8cf036.png

评论留言+转发文章+关注我后私信回复【Java】即可免费获取我准备好的面试文档资料!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mock模拟接口测试 vue_Easy Mock以及Vue+Mock.js模拟数据

Easy Mock以及VueMock.js模拟数据一、Mock.js简介Mock.js是一个可以模拟后端数据,也可以模拟增删改查操作的js库基础语法规范数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:name|rule: value语法规则说明name|min-max: string…

excel转html中文乱码,英文系统中Excel中文乱码问题

我是先用Gridview导出,然后再转换格式,部分代码如下StringWriter sw new StringWriter();HtmlTextWriter htw new HtmlTextWriter(sw);GV.RenderControl(htw);File.WriteAllText(path"temp", sw,System.Text.Encoding.UTF7);Excel.Applicati…

jsbridge原理_React Hooks 原理与最佳实践

1. 前言React Hooks 是 React 16.8 引入的新特性,允许我们在不使用 Class 的前提下使用 state 和其他特性。React Hooks 要解决的问题是状态共享,是继 render-props 和 higher-order components 之后的第三种状态逻辑复用方案,不会产生 JSX 嵌…

html小圆图堆叠轮播,每次移一张图片的无缝轮播图

my动画轮播图*{list-style: none;margin: 0px;padding: 0px;}.carousel{width: 530px;height: 280px;overflow: hidden;position: relative;}.carousel .imgList{width: 9999px;position: absolute;}.carousel .imgList>li{float: left;}.carousel .imgList>li>img{wi…

mfc绘制bezier b样条三种曲线_生存曲线(二):SPSS和Origin绘图教程及相关问题

上期生存分析推送后,有粉丝在后台问:有发生率的情况,为什么要做生存曲线分析?举个例子:临床试验中,共招募30位胃腺癌患者,均分为3组,分别使用了A/B/C三套不同的治疗方案,…

8位可控加减法电路设计_高级工程师:相同的地线GND,却有不同的电路设计含义...

问一个简单而又很难回答的电路问题:电路中的地线GND,它的本质是什么?工程师,在研发设计一个电路项目时,一般会经历三个阶段:电路项目PCBA板1,项目方案论证项目方案论证,是在项目前期…

word刷子刷格式_Excel技巧—开始菜单之格式刷六大功能

点赞再看,养成习惯千里之行,始于足下今天我们主要学习的是“第一区块-剪贴板”中的“格式刷”。“格式刷”主要将一个对象的颜色、字体样式、字体大小、边框样式等所有格式复制到目标对象上,我们可以把它理解为格式的复制粘贴。说到“格式刷”…

html/css题库,DIV+CSS题库

CD2、在CSS语言中下列哪一项是"左边框"的语法?(C )A、border-left-width:B、border-top-width:C、border-left:D、border-top-width:3. 选出你认为最合理的定义标题的方法( C )A. 文章标题B.文章标题C.文章标题D. 文章标题4、在CSS语言中下列哪一项的适用…

紫金计算机网络,南京理工大学紫金学院《计算机网络技术》考试复习试题试题(含答案解析)2...

一、选择题:(每题2分,共40分)1.在TCP/IP参考模型中,TCP协议工作在()。A、应用层B、传输层C、互联网层D、网络接口层2.下列()是合法的E-mail地址。A、mnetworkhttp://www.doczj.com/doc/fe7e6e475ebfc77da26925c52cc58b…

go语言和python结合_Go+Python双语言混合开发-第1章 【阶段一:Go语言基础】

1-1 GoPython双语言混合开发-课程导学 (11:35)1-2 课程资源获取方式 - 非常重要!!! (06:07)1-3 课程中需要用到的开发环境介绍 (03:47)1-4 windows中安装centos7虚拟机 (19:16)1-5 xshell的安装和使用 (04:14)1-6 git的安装和配置 (06:22)1-7…

cwinthread*线程指针怎么销毁结束_最新版Web服务器项目详解 01 线程同步机制封装类...

点 击 关 注 上 方"两猿社"设 为"置 顶 或 星 标",干 货 第 一 时 间 送 达。互 联 网 猿 | 两 猿 社基础知识RAIIRAII全称是“Resource Acquisition is Initialization”,直译过来是“资源获取即初始化”.…

您的计算机无法访问dota2,解决win7系统DOTA2无法连接至Steam网络的设置方法

随着电脑的使用率越来越高,我们有时候可能会遇到win7系统DOTA2无法连接至Steam网络问题,如果我们遇到了win7系统DOTA2无法连接至Steam网络的问题,要怎么处理win7系统DOTA2无法连接至Steam网络呢?接下来给大家带来win7系统DOTA2无法…

根据经纬度计算范围_高中地理必修一二三思维导图+计算公式全汇总!能用3年...

必修一必修二必修三计算公式1.经纬度计算:经度差与地方时差算经度——地方时每相差1小时,经度相差1;纬差法与正午太阳高度算纬度——正午太阳相差多小,纬度相差多少;北极星的仰角即地平高度等于当地地理纬度;经纬线上长度算经纬度——1经线长…

linux 系统 可视化工具实时监控_Linux上的实时监控平台-你需要这样做

应朋友们要求,介绍上Linux系统下的实时监控平台,在上次提到了glances,它提供了较多的监控指标,那如果我们要看历史数据呢?某一时间段的回放呢?显然glances是做不到的。因此,实时监控平台就应运而…

职称类计算机论文,计算机类职称论文发表(2)

计算机类职称论文发表篇二基于计算机通信网络的采矿传输技术【摘 要】煤矿开采是人类合理开发自然资源的主要途径,对国民产业经营收益水平也有很大的影响。信息科技改革指导下,分析了基于计算机通信网络的采矿信息传输方案,指导了煤炭开采新模…

linux 普通用户touch权限不够_Linux 开启指令

简单指令1.1、 ls 指令语法1:# ls [路径]表示列出指定路径下的文件夹和文件 的名字,如果路径没有指定则列出当前路径下的(list)列如:在root用户的家目录中输入ls命令,则会看到以下的效果:要求列…

5、this调用语句必须是构造函数中的第一个可执行语句_ES6中的Promise和Generator详解...

简介ES6中除了上篇文章讲过的语法新特性和一些新的API之外,还有两个非常重要的新特性就是Promise和Generator,今天我们将会详细讲解一下这两个新特性。Promise什么是PromisePromise 是异步编程的一种解决方案,比传统的解决方案“回调函数和事件”更合理和…

华中师范大学本科生计算机课教师,华中师范大学第八届大学生计算机设计大赛的通知...

为了激发大学生学习计算机知识和技能的兴趣和潜能,培养其创新能力和团队合作意识,以及运用信息技术解决实际问题的综合实践能力,切实提高计算机教学质量,教育部高等学校计算机类专业教学指导委员会、软件工程专业教学指导委员会、…

labelimg如何调整框的颜色_如何制作摄影集(下)

如果说上篇讲的是有关排版设计,那么下篇就是有关具体实施了。如果你正对作品集的制作跃跃欲试,那么下篇的内容仍旧非常重要,而且非常干货。 目录:软件推荐(Id)字体推荐纸张选择打印方式(激光、喷…

highcharts 显示平均值数值_拼多多评价多久能显示,有什么出评价技巧吗?

很多商家都知道,拼多多的评价,有时不一定会在买家评价后就立马出现,一般得等一段时间才会显示,,这个时间一般不会很久,24小时之内,评论一般在审核通过后就会展示出来。如果长时间不展示&#xf…