[레디 스] RDB-dump.rdb

설명

RDB (databses를 레디 스)

레디 스에서 영구 데이터 모드 (기본값), 중 하나는 RDB 모드, 그것은 간단히 특정 조건을 트리거되고, dump.rdb (스냅 샷 파일)를 생성 시작 자식 프로세스


둘째, 구문 분석 소스 코드

2.1 SRC / rdb.c : rdbSaveBackground


코드 로직 :

1.fork (), 자식 프로세스를 만들 수 있습니다

2. 아이는, rdbSave 함수를 호출 실제 덤프 작업을 할


2.2 SRC / rdb.c :


코드 로직 :

임시 파일을 만들기 1. tmp- {PID} .rdb

현재 snprintf (TMPFILE, 256 , "temp- % D .rdb" ( INT ) GETPID ());

2. 스냅 샷 데이터는 임시 파일에 기록됩니다

rioInitWithFile (RDB, FP);

경우 (rdbSaveRio (RDB, 에러) == C_ERR) {

    에러의 errno =;

    고토 WERR;

}

3. 데이터가 실제로 디스크에 기록

IF (FFLUSH (FP) == EOF ) GOTO WERR, 사용자 공간 커널 공간 데이터 캐시에 // 캐시 된 데이터 브러쉬

IF 합니다 (fsync를합니다 (fileno (FP)) == - 1. ) GOTO WERR, 실제 물리적 디스크 브러시의 커널 공간으로 // 캐시 데이터

IF (FCLOSE (FP) == EOF ) GOTO WERR; // 가까운 파일 쓰기 작업이 완료

4. 임시 파일 이름을 변경 dump.rdb

이름 바꾸기 (TMPFILE, 파일명)


셋째, 트리거 조건 설정

900 일 저장

300 10 저장

60 만 저장

수단 :

1,900 초 이내에 오는 보조 데이터가 변경

10 개 데이터은 300 초이 달라있다

보조 데이터 만 60 초 내에 변화

상기는 그 동작을 트리거 조건이 만족하는 dump.rdb 스냅 샷 파일을 생성

게시 된 140 개 원래 기사 · 원의 찬양 (28) · 전망 180 000 +

추천

출처blog.csdn.net/qq_16097611/article/details/79940171