当从服务器重新连上主服务器时,从服务器会通过PSYNC命令将自己的复制偏移量offset发送给主服务器,主服务器会根据这个复制偏移量来决定对主服务器进行何种复制操作:
如果offset偏移量之后的数据,仍然存在于复制积压区里面,那么主服务器将对从服务器执行部分重同步操作。
如果offset偏移量之后的数据,不在复制积压区里面,那么主服务器将会对从服务器进行完全重同步操作。
服务器允许ID
每个Redis服务器,不论是主服务器还是从服务器都会有自己的运行ID。这个ID在服务器启动时自动生成,由40个随机十六进制字符组成。
当从服务器对主服务器进行初次复制时,主服务器会将自己的运行ID传送给从服务器,而从服务器会将这个运行ID保存起来。
当从服务器断线并重连上一个主服务器时,从服务器将向当前连接的主服务器发送自己的之前保存的运行ID:
如果ID一致,说明短线后重连的就是之前连接的服务器;
如果ID不一致,说明短信后重连的不是之前链接的服务器,那么主服务器将对从服务器进行完整重同步操作。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx