Redis REPL-BACKLOG-SIZE Parameter

Redis Server Course Redis Technical Support Redis Enterprise Server

Redis repl-backlog-size parameter

레디스 설정 파일인 redis.conf 에 있는 repl-backlog-size 파라미터에 대한 설명입니다.   이 파라미터는 버전 2.8.0에 부분적 재동기화(Partially Resynchronization) 기능과 함께 추가되었습니다.
이 문서는 레디스 서버 버전 3.2.2을 기준으로 만들었습니다.

설명

클론(슬레이브)와 연결이 끊어졌을 때 입력되는 데이터를 backlog-buffer에 저장했다가 다시 연결되면 전체 데이터를 다시 보낼 필요없이 backlog-buffer의 데이터를 클론에 보내서 동기화합니다.  이렇게 동작하는 것을 부분 동기화(partial resynchronization)라고 합니다. 입력되는 데이터가 이 버퍼 사이즈를 초과하면 전체 동기화(full synchronization)를 합니다. repl-backlog-size는 이 backlog-buffer 사이즈입니다.

1mb가 기본값(default value)입니다. kb, mb, gb 단위를 사용할 수 있습니다.

0으로 설정할 수 없습니다. 0으로 하면 레디스 서버 시작시 다음과 같은 에러를 발생시키고 멈춥니다.
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 392
>>> 'repl-backlog-size 0'
repl-backlog-size must be 1 or greater.

레디스 서버가 시작했을 때는 backlog-buffer를 할당하지 않습니다.   이 서버에 다른 서버가 클론으로 연결되면 repl-backlog-size 만큼 backlog-buffer가 할당합니다.
버전 3.2이하는 다음과 같습니다.
서버가 마스터에서 클론으로 변경되면 backlog-buffer를 해제합니다.
서버가 클론에서 마스터로 변경되어도 backlog-buffer를 할당하지 않습니다.
버전 4부터는 복제서버는 항상 backlog-buffer를 가지고 있습니다.
이것은 부분 동기화(PSYNC2)를 위해서 필요합니다.
CONFIG GET 명령으로 repl-backlog-size를 확인할 수 있고, 레디스 서버 운영 중 CONFIG SET 명령으로 변경할 수 있습니다.   또한 INFO replication 명령에서 repl-backlog-size를 확인할 수 있습니다.
Backlog-buffer 메모리 할당 여부는 INFO memory 명령에서 used_memory로 확인할 수 있습니다.

복제에 대한 자세한 내용은 여기를 보세요.

사용 방법

repl-backlog-size 1kb
repl-backlog-size 1mb
repl-backlog-size 1gb

<< REPLICA-PRIORITY REPL-TIMEOUT >>

조회수 :

Email 답글이 올라오면 이메일로 알려드리겠습니다.