标签:问题 开始 command 同步 更新 选项 red off rdb
Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作。
同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。
断线后重复制效率低,有大量重复的数据不需要同步
同步操作从SYNC命令切换成PSYNC命令,PSYNC命令支持完全重同步(full resynchronization)和部分重同步(partial resynchronization)两种模式。
在进行主从同步时,以下情况进行完全重同步,其余情况采用部分重同步。
命令传播操作用于在主服务器的数据库状态修改,导致主从服务器的数据库状态出现不一致时,让主从服务器的数据库状态重新回到一致状态。
在命令传播阶段,从服务器会默认以每秒一次的频率,向主服务器发送命令,发送的REPLCONF ACK命令对主从服务器有三个作用:
min-slaves-to-write
和min-slaves-max-log
两个选项可以防止主服务器在不安全的情况下执行写命令offset
来确定主从服务器之间数据是否一致。如果不一致会从复制积压缓冲区中将数据补发给从服务器,如果复制积压缓冲区中没有对应的offset
,需要进行完全重同步通过向主服务器发送SLAVEOF命令,我们可以让一个从服务器去复制一个主服务器的数据,具体实现步骤如下:
标签:问题 开始 command 同步 更新 选项 red off rdb
原文地址:https://www.cnblogs.com/pinxiong/p/13288097.html