#Redis のマスター/スレーブ同期メカニズムにより、Redis マスターとスレーブ間のデータ同期が保証されます。
同期方法には次が含まれます: 完全レプリケーションと増分コピー (推奨学習: Redis ビデオ チュートリアル )
# 完全コピー
スレーブが初めて起動されると、マスターに接続し、psync {runId} { の形式で PSYNC コマンドを送信します。 offset}
{runId} 为master的运行id;{offset}为slave自己的复制偏移量。 slave第一次连接master时,slave并不知道master的runId,也不知道自己偏移量,这时候slave会传一个问号和-1,告诉master节点是第一次同步。格式为psync ? -1
slave接受到master的回复命令后,会保存master的runId和offset,slave此时处于同步状态。 slave处于同步状态,如果此时收到请求,当配置参数slave-server-stale-data yes时,会响应当前请求;slave-server-stale-data no,返回错误。
増分コピー
ネットワークの中断やコマンドの損失などの異常な状況が発生した場合、スレーブ ノードが以前に保存していたためにマスターとスレーブの接続が復元されたとき独自にコピーされたマスター ノードのオフセットと実行 ID。したがって、これらは psync {runId} {offset} の形式で、部分的なレプリケーション操作を必要とする psync パラメーターとしてマスター ノードに送信されます。 psync コマンドを受信した後、マスター ノードはまずパラメーター runId がそれ自体と一致するかどうかを確認します。一致する場合は、現在のマスター ノードが以前にコピーされたことを意味し、その後、自身のレプリケーション内で検索されます。データがバッファに格納された後、オフセットが指定されている場合は、部分コピーを実行できることを示す継続応答がスレーブ ノードに送信され、そうでない場合は完全コピーが実行されます。 マスター ノードは、マスター/スレーブ レプリケーションが正常な状態になるように、オフセットに従ってレプリケーション バックログ バッファー内のデータをスレーブ ノードに送信します。以上がRedis でデータ同期を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。