레디 스 학습 - RDB

반복 - RDB를

RDB는 무엇인가

RDB 후, 데이터 스냅 샷의 하드 디스크에 메모리에 레디 스됩니다 생성, (진) RDB 파일이라고

레디 스 다시 시작, 하드 디스크에 RDB 파일을로드 할 때, 데이터 복구 메모리에로드.

RDB 트리거 모드 - 주로 세 가지 방법

  • 저장 (동기)
  • bgsave (비동기)
  • 자동적 인
저장 1. (동기화)

다음과 같이 구현 프로세스는 다음과 같습니다

  • 다른 명령이 대기를 차단하면서에 저장
  • 기존 RDB 파일이 존재하는 경우 임시 파일을 만든 다음 기존 파일을 대체합니다
  • 시간 복잡도 O (N)
redis> save
OK
2. bgsave (비동기)

다음과 같이 구현 프로세스는 다음과 같습니다

  • bgsave를 호출 한 후, 리눅스는 자식 프로세스를 만들 포크 () 함수를 호출합니다
  • 기존 RDB 파일이 존재하는 경우 임시 파일을 만든 다음 기존 파일을 대체합니다
  • 시간 복잡도 O (N)
  • 하위 프로세스 이름 : 레디 스-RDB-bgsave
redis> bgsave
BAckground saving started
자동 RDB의 동작을 구성하여 3
  • 내부 상당 bgsave
  • 레디 스의 기본 구성을 저장
구성 둘째 변경
구하다 (900) 1
구하다 (300) (10)
구하다 (60) 10000

위의 조건 중 하나가 생성됩니다 (bgsave) RDB 파일 (이진)을 만나보십시오.
예를 들어 60 초 만 명 데이터 변경, 자동으로 생성 된 파일 RDB 내.

의 단점
문어 RDB의 많은 양이 너무 자주, 자주 많은위한 하드, 하드 부담에 기록 발생하는 경우 가난한 제어, RDB 파일을 생성.

RDB 구성

구성 항목 기본값 의미
dbfilename dump.rdb RDB 스냅 샷 파일 이름
당신 ./ 스냅 샷 파일이 생성 RDB 디렉토리
스톱 쓰기 -에 - bgsave 오류 여부 bgsave 오류가 때 정지 쓰기를 발생
rdbcompression RDB 파일은 압축입니다
rdbchecksum 확인 RDB 여부

RDB 최상의 구성

  • 자동 동작 RDB 배치되지
  • dbfilename 덤프 - $ {포트} .rdb
  • DIR / redisDataPath
  • 정지 - 기록 -에 - bgsave 오류 예
  • rdbcompression 예
  • rdbchecksum 예

트리거 메커니즘은 무시할 수없는

  • 主从复制时机的全量复制,master 节点会执行 bgsave
  • debug reload
  • shutdown
  • flushDB 、 flushAll

演示

这里重新写一个 redis-server 的启动配置文件,命名为 redis-6379.conf,放到 /opt/soft/redis/config/ 目录下,修改内容如下,其他配置保持默认不变。

daemonize yes
pidfile /var/run/redis-6379.pid
port 6379
logfile "6379.log"
# save 900 1
# save 300 10
# save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump-6379.rdb
dir /opt/soft/redis/data

启动 redis 服务:

redis-server /opt/soft/redis/config/redis-6379.conf

启动客户端:

redis-cli

执行:

可以看到,在 /opt/soft/redis/data/ 目录下,生成了 RDB文件。

现在我们演示一下自动生成 RDB 文件操作,修改 redis-6379.conf 文件,配置自动 RDB 操作:

save 60 5

然后重启 redis 服务,启动 redis 客户端,执行:

打印日志尾部信息,可以看到在 60 s 内发生了 5 次改变,所以生成了 RDB 文件。


总结

  1. RDB 是 redis 内存到硬盘的快照,用于持久化。
  2. save 通常会阻塞 redis。
  3. bgsave 不会阻塞 redis,但是会 fork 新进程。
  4. save 自动配置满足任一就会被执行。
  5. 有些触发机制不容忽视。

추천

출처www.cnblogs.com/weixuqin/p/10966763.html