1、redis主从同步是异步同步的
2、master和slave都保存replica_id版本号,如果版本号不一致进行全量同步,master发送rdb文件给slave进行数据加载。如果版本号一致,进行增量同步。master保存了offset,从offset位置继续同步。
3、redis有一个环形的buffer存储执行过的语句,还有一个offset保存同步到什么位置了。如果master操作太快,slave同步跟不上,就会导致唤醒buffer还没有同步完成就被覆盖,你这时候slave和master的版本不一致,就会进行全量同步