【Java面试题】看完高手的回答原来这么简单!Redis主从复制原理,你能回答上来吗?

一个工作了5年的粉丝,在面试的时候遇到“Redis主从复制的原理”这个问题。

他回答这个问题的时候断断续续的,没有一个比较清晰的逻辑性,导致面试没发挥好。

今天这篇文章,给大家分享一下遇到这类问题,正确的回答方法。

Hi,大家好,我是Mic,咕泡科技联合创始人

下面来分析一下面试官的考察意图。

考察目的

这个问题还是有一定的深度,平时在工作中很少会涉及到这方面的内容。

从这个问题的考察意图来看,很明显是考察求职者对于Redis底层原理的理解程度。

另外,目标公司可能需要涉及到Redis中间件的日常运维。

同时,面试官也是通过技术原理来达到筛选高级或者资深Java开发的目的。

问题分析

Redis主从复制,是指在Redis集群里面,Master节点和Slave节点数据同步的一种机制。

简单来说就是把一台Redis服务器的数据,复制到其他Redis服务器中。

其中负责复制数据的来源称为master,被动接收数据并同步的节点称为slave

在Redis里面,提供了全量复制和增量复制两种模式。

全量复制一般发生在Slave节点初始化阶段,这个时候需要把master上所有数据都复制一份。

具体的工作原理是:

  1. Slave向Master发送SYNC命令,Master收到命令以后生成数据快照

  2. 把快照数据发送给Slave节点,Salve节点收到数据后丢弃旧的数据,并重新载入新的数据

需要注意,在主从复制过程中,Redis并没有采用实现强数据一致性,因此会存在一定时间的数据不一致问题。

增量复制,就是指Master收到数据变更之后,把变更的数据同步给所有Slave节点。

增量复制的原理是,Master和Slave都会维护一个复制偏移量(offset),用来表示Master向Slave传递的字节数。

每次传输数据,Master和Slave维护的Offset都会增加对应的字节数量。

Redis只需要根据Offset就可以实现增量数据同步了。

高手:

Redis主从复制包括全量复制和增量复制。

全量复制是发生在初始化阶段,从节点会主动向主节点发起一个同步请求,主节点收到请求后会生成一份当前数据的快照发送给从节点,从节点收到数据进行加载后完成全量复制。

增量复制是发生在每次Master数据发生变化的过程中,会把变化的数据同步给所有的从节点。

增量复制是通过维护Offset这个复制偏移量来实现的。

总结

大家知道怎么回答了吗?

如果你喜欢我的作品,记得点赞收藏加关注哦!!!

另外,我将所有Java面试系列制作成了完整的面试文档。它的便捷之处在于,可以通过检索的方式,找到你想要的面试题,目前已经更新200期,总计超过20W字!

【想领取面试文档的小伙伴可以点击文章底部名片无套路免费赠送给大家!】

需要高手面试文档面试文档的小伙伴可以扫描下方二维码
↓↓↓↓↓↓↓↓↓↓↓↓↓

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跟着Mic学架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值