大厂面试题-Redis主从复制的原理

目录

考察目的

问题分析

问题解答


考察目

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

个问题的考察意图来看,很明显是考察求职者对于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),用来表示MasterSlave传递的字节数。

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

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

问题解答

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值