>  기사  >  데이터 베이스  >  Redis의 증분 동기화를 구현하는 방법

Redis의 증분 동기화를 구현하는 방법

(*-*)浩
(*-*)浩원래의
2019-11-27 09:49:313694검색

Redis의 증분 동기화를 구현하는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.