考察目的
这个问题还是有一定的深度,平时在工作中很少会涉及到这方面的内容。
从这个问题的考察意图来看,很明显是考察求职者对于Redis底层原理的理解程度。
另外,目标公司可能需要涉及到Redis中间件的日常运维。
同时,面试官也是通过技术原理来达到筛选高级或者资深Java开发的目的。
问题分析
Redis主从复制,是指在Redis集群里面,Master节点和Slave节点数据同步的一种机制。
简单来说就是把一台Redis服务器的数据,复制到其他Redis服务器中。
其中负责复制数据的来源称为master,被动接收数据并同步的节点称为slave
在Redis里面,提供了全量复制和增量复制两种模式。
全量复制一般发生在Slave节点初始化阶段,这个时候需要把master上所有数据都复制一份。
具体的工作原理是:
1、Slave向Master发送SYNC命令,Master收到命令以后生成数据快照
2、把快照数据发送给Slave节点,Salve节点收到数据后丢弃旧的数据,并重新载入新的数据
需要注意,在主从复制过程中,Redis并没有采用实现强数据一致性,因此会存在一定时间的数据不一致问题。
增量复制