Redis의 기존 동기화 전략
1. 증분 동기화 기능 구성 요소 (추천 학습: Redis 동영상 튜토리얼)
1) 마스터 서버의 복제 오프셋과 슬레이브 서버의 복제 오프셋 Shift;
마스터 서버가 슬레이브 서버에 N바이트의 데이터를 전송할 때마다 복제 오프셋 값에 N을 추가합니다.
슬레이브 서버가 마스터 서버에서 전송된 N바이트의 데이터를 수신할 때마다 데이터의 경우 자체 복사 오프셋 값에 N을 추가합니다.
2) 마스터 서버의 복제 백로그 버퍼
마스터 서버가 유지하는 고정 길이 대기열, 기본값은 1M입니다. 마스터 서버가 명령 전파를 수행할 때 쓰기 명령만 보내는 것이 아닙니다. 슬레이브 서버뿐만 아니라 쓰기 명령도 복사 백로그 버퍼에 대기합니다.
3) 서버의 실행 ID입니다.
각 서버는 시작 시 무작위로 실행 ID(runid)를 생성합니다.
2. 증분 동기화 구현
1) 슬레이브 서버는 마스터 서버의 runid와 복제 오프셋을 전달하여 PSYNC 명령을 마스터 서버로 보냅니다.
2) 마스터 서버는 runid가 일치하는지 확인합니다. 자체 runid가 없으면 전체 복사가 수행됩니다.
3) 마스터 서버는 복사 오프셋이 백로그 버퍼에 있는지 확인합니다. 그렇지 않은 경우 전체 복사가 수행됩니다.
4) 두 가지 확인이 모두 통과되면 마스터가 수행됩니다. 오프셋 이후의 모든 데이터는 슬레이브 서버로 전송되고 마스터-슬레이브 서버는 다시 일관된 상태로 돌아갑니다.
3. 결론
1) 슬레이브 서버가 전달하는 마스터 서버의 runid와 오프셋이 일치하는 경우에만 Redis는 큰 제한이 있는 증분 동기화 전략을 채택합니다. 서버가 다시 시작되거나, 메인 서버가 교체되거나, 연결 시간이 너무 길어지면 전체 동기화 전략을 채택합니다.
더 많은 Redis 관련 기술 기사를 보려면
Redis 시작 튜토리얼위 내용은 Redis의 증분 동기화를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!