Redis RDB의 전체 이름은 무엇입니까? Redis RDB 메모리 데이터 지속성 작동 모드

RDB의 전체 이름은Redis database.

  • 이름에서 알 수 있듯이 RDB는 데이터를 저장하는 데 사용되는 Redis 데이터베이스입니다.
  • 따라서 RDB 퍼시스턴스를 통해 Redis 메모리에 저장된 데이터를 RDB 파일에 기록하고 디스크에 저장하여 퍼시스턴스를 구현합니다.
  • Redis의 기능은 데이터를 유지할 수 있다는 것입니다. 즉, 메모리의 데이터를 디스크에 기록하여 데이터가 손실되지 않도록 하고 디스크에서 메모리로 데이터를 로드할 수도 있습니다.

Redis RDB의 전체 이름은 무엇입니까? Redis RDB 메모리 데이터 지속성 작동 모드

Redis의 초기 동작은 모두 메모리를 기반으로 하기 때문에 성능은 매우 높지만 프로그램이 종료되면 데이터가 손실됩니다.

따라서 인메모리 데이터를 지정된 간격으로 디스크에 기록해야 하며, 이는 전문 용어로 스냅샷입니다.

복원할 때 스냅샷 파일은 메모리에 직접 기록됩니다.

이것은 Memcached에 지속성 기능이 없기 때문에 Redis와 Memcached의 주요 차이점 중 하나이기도 합니다.

Redis 메모리 데이터의 지속성을 위해 Redis는 다음과 같은 방법을 제공합니다.

  • 스냅샷 방식(RDB, Redis DataBase): 메모리 데이터를 특정 시점에 바이너리 형태로 디스크에 기록합니다.
  • 파일만 추가(AOF, 파일만 추가), 모든 작업 명령을 기록하고 파일에 텍스트 형식으로 추가합니다.
  • Redis 4.0 이후의 새로운 방식인 Hybrid Persistence는 RDB와 AOF의 장점을 결합한 것이다.쓸 때 먼저 현재 데이터를 파일의 시작 부분에 RDB 형식으로 쓴 다음 후속 작업 명령을 AOF 형식으로 파일에 저장합니다. 이렇게 하면 Redis 재시작 속도를 보장할 수 있을 뿐만 아니라 데이터 손실 위험 .

각 지속성 체계에는 특정 사용 시나리오가 있기 때문입니다.

Redis RDB 메모리 데이터 지속성 작동 모드

  • RDB(Redis DataBase)는 특정 순간의 메모리 스냅샷(Snapshot)을 바이너리 형태로 디스크에 쓰는 과정이다.
  • 메모리 스냅샷은 위에서 말한 것입니다.특정 시점에 메모리에 있는 데이터의 상태 기록을 나타냅니다.
  • 이것은 사진을 찍는 것과 유사하며, 친구의 사진을 찍으면 그 사진에 그 친구의 모든 이미지가 즉시 기록될 수 있습니다.
  • RDB를 트리거하는 방법에는 두 가지가 있습니다. 하나는 수동 트리거이고 다른 하나는 자동 트리거입니다.

수동으로 RDB 트리거

지속성을 수동으로 트리거하는 두 가지 작업이 있습니다.savebgsave.

이들의 주요 차이점은 Redis 메인 스레드의 실행을 차단할지 여부입니다.

1. 저장 명령

클라이언트 측에서 save 명령을 실행하면 Redis의 지속성이 트리거되지만 Redis도 차단 상태가 됩니다. RDB가 지속되기 전까지 다른 클라이언트가 보낸 명령에 응답하지 않으므로 주의해서 사용해야 합니다. 생산 환경.

127.0.0.1:6379> save
OK
127.0.0.1:6379>

명령을 실행하는 과정은 그림에 나와 있습니다 

2. bgsave 명령

  • bgsave(백그라운드 세이브)는 백그라운드 세이브입니다.
  • 그것과 save 명령의 가장 큰 차이점은 bgsave가 지속성을 수행하기 위해 자식 프로세스를 분기한다는 것입니다.
  • 전체 프로세스는 자식 프로세스가 포크인 경우에만 발생합니다.짧은 차단만 있습니다.
  • 자식 프로세스가 생성된 후 Redis의 메인 프로세스는 다른 클라이언트의 요청에 응답할 수 있습니다.

전체 프로세스를 차단하여save명령에 비해bgsave명령은 분명히 우리가 사용하기에 더 적합합니다.

127.0.0.1:6379> bgsave
Background Saving started # 提示开始后台保存 
127.0.0.1:6379>

자동으로 RDB 트리거

수동 트리거링에 대해 설명한 후 자동 트리거링에 대해 살펴보겠습니다.구성 파일에서 자동 트리거 조건을 구성할 수 있습니다.

1. 돈을 구하다

  • save mn은 m초 이내에 n개의 키가 변경되면 지속성이 자동으로 트리거됨을 의미합니다.매개변수 m 및 n은 Redis 구성 파일에서 찾을 수 있습니다.
  • 예를 들어, save 60 1은 하나의 키가 변경되는 한 60초 이내에 RDB 지속성이 트리거됨을 의미합니다.
  • 지속성 자동 트리거의 핵심은 설정된 트리거 조건이 충족되면 Redis가 자동으로 bgsave 명령을 한 번 실행한다는 것입니다.

참고: 여러 개의 save mn 명령이 설정된 경우 하나의 조건이 지속성을 트리거합니다.

예를 들어 다음 두 개의 save mn 명령을 설정합니다.

save 60 10
save 600 20
  • Redis 키 값이 60초 이내에 10번 변경되면 지속성이 트리거됩니다.
  • Redis 키가 60초 이내에 변경되고 값이 10회 미만으로 변경되면 Redis는 Redis 키가 600초 이내에 20회 이상 수정되었는지 여부를 판단하고, 그렇다면 지속성을 트리거합니다.

2. 플러샬

  • flushall 명령은 Redis 데이터베이스를 플러시하는 데 사용됩니다.
  • 프로덕션 환경에서는 주의해서 사용해야 합니다.
  • Redis가 flushall 명령을 실행하면 자동 지속성을 트리거하고 RDB 파일을 지웁니다.

3. 마스터-슬레이브 동기화 트리거

Redis 마스터-슬레이브 복제에서 슬레이브 노드가 전체 복제 작업을 수행할 때 마스터 노드는 bgsave 명령을 실행하여 RDB 파일을 슬레이브 노드로 전송하고 이 프로세스는 자동으로 Redis 퍼시스턴스를 트리거합니다.

Redis는 명령을 통해 현재 구성 매개변수를 쿼리할 수 있습니다.

쿼리 명령의 형식은 다음과 같습니다.config get xxx

예를 들어 RDB 파일의 스토리지 이름 설정을 얻으려면 다음을 사용할 수 있습니다. config get dbfilename .

실행 효과는 다음과 같습니다.

127.0.0.1:6379> config get dbfilename
1) "dbfilename"
2) "dump.rdb"

Redis 서버는 RDB 파일을 로드할 때 로드가 완료될 때까지 차단하므로 시간이 오래 걸리고 웹사이트에 액세스할 수 없습니다.

Redis의 RDB 캐시 파일 dump.rdb를 수동으로 삭제하려면 다음 명령을 사용하여 dump.rdb 파일의 저장 경로를 찾을 수 있습니다 ▼

find / -name dump.rdb
  • 그런 다음 SSH를 통해 dump.rdb 캐시 파일을 수동으로 삭제합니다.

Redis는 RDB의 구성을 설정합니다.

RDB 구성 설정과 관련하여 다음 두 가지 방법을 사용할 수 있습니다.

  1. Redis 구성 파일을 수동으로 수정
  2. 명령줄 설정을 사용하여 config set dir "/usr/data"는 RDB 파일을 수정하는 스토리지 명령입니다.

참고: redis.conf의 구성은 config get xxx를 통해 얻을 수 있고 config set xxx 값을 통해 수정할 수 있으며, Redis 구성 파일을 수동으로 수정하는 방법은 전역적으로 유효합니다. 즉, Redis 서버를 다시 시작하여 설정한 매개변수는 적용되지 않습니다. 손실되지만 명령을 사용하여 수정하면 Redis가 다시 시작된 후 손실됩니다.

단, Redis 설정 파일을 수동으로 수정하여 즉시 적용하고 싶다면 Redis 서버를 재시작해야 하며, 커맨드 방식은 Redis 서버를 재시작할 필요가 없다.

RDB 파일 복구

Redis 서버가 시작될 때 RDB 파일 dump.rdb가 Redis 루트 디렉터리에 있으면 Redis는 자동으로 RDB 파일을 로드하여 영구 데이터를 복원합니다.

루트 디렉터리에 dump.rdb 파일이 없으면 dump.rdb 파일을 Redis의 루트 디렉터리로 이동하십시오.

물론 Redis가 시작될 때 RDB 파일이 로드되었는지 여부를 보여주는 로그 정보가 있습니다.

Redis 서버는 로드가 완료될 때까지 RDB 파일을 로드하는 동안 차단됩니다.

이제 우리는 RDB 지속성이 수동 트리거링과 자동 트리거링의 두 가지 방식으로 구분된다는 것을 알고 있습니다.

  1. Redis를 시작할 때 저장 파일이 작고 데이터 복구가 더 빠르다는 장점이 있습니다.
  2. 단점은 데이터 손실의 위험이 있다는 것입니다.

RDB 파일의 복구도 매우 간단합니다 RDB 파일을 Redis의 루트 디렉터리에 넣으면 Redis가 시작될 때 Redis가 자동으로 데이터를 로드하고 복원합니다.

RDB의 장단점

1) RDB의 장점

RDB의 내용은 이진 데이터로 메모리를 덜 차지하고 더 컴팩트하며 백업 파일로 더 적합합니다.

RDB는 재해 복구에 매우 유용하며 Redis 서비스 복구를 위해 원격 서버로 더 빠르게 전송할 수 있는 압축 파일입니다.

RDB는 Redis의 속도를 크게 향상시킬 수 있습니다. 기본 Redis 프로세스가 자식 프로세스를 분기하여 데이터를 디스크에 유지하기 때문입니다.

Redis 메인 프로세스는 디스크 I/O와 같은 작업을 수행하지 않습니다.

AOF 형식 파일과 비교하여 RDB 파일이 더 빨리 다시 시작됩니다.

2) RDB의 단점

RDB는 일정 시간 간격으로만 데이터를 저장할 수 있기 때문에 Redis 서비스가 중간에 실수로 종료되면 일정 시간 동안 Redis 데이터가 손실됩니다.

RDB가 하위 항목을 사용하여 디스크에 저장하기 위해 자주 포크가 필요한 프로세스입니다.

데이터 세트가 크면 포크에 시간이 많이 걸릴 수 있고, 데이터 세트가 크면 CPU 성능이 좋지 않아 Redis가 몇 밀리초 또는 심지어 몇 초 동안 클라이언트에 서비스를 제공하지 못할 수 있습니다.

물론 Redis의 실행 효율성을 향상시키기 위해 지속성을 비활성화할 수도 있습니다.

데이터 손실에 민감하지 않은 경우 클라이언트가 연결할 때 이 작업을 수행할 수 있습니다. config set save "" Redis에 대한 지속성을 비활성화하는 명령입니다.

redis.conf, 만약에save처음에 모든 구성을 주석 처리하면 지속성도 비활성화되지만 일반적으로 수행되지 않습니다.

희망 첸 웨이량 블로그( https://www.chenweiliang.com/ ) 공유 "Redis RDB의 전체 이름은 무엇입니까? Redis RDB 인메모리 데이터 지속성 작동 모드"가 도움이 될 것입니다.

이 기사의 링크를 공유하는 것을 환영합니다:https://www.chenweiliang.com/cwl-26677.html

최신 업데이트를 받으려면 Chen Weiliang 블로그의 Telegram 채널에 오신 것을 환영합니다!

🔔 채널 상위 디렉토리에서 귀중한 "ChatGPT 콘텐츠 마케팅 AI 도구 사용 가이드"를 가장 먼저 받아보세요! 🌟
📚 이 가이드에는 엄청난 가치가 담겨 있습니다. 🌟이것은 흔치 않은 기회입니다. 놓치지 마세요! ⏰⌛💨
당신이 원한다면 공유하고 좋아하십시오!
당신의 공유와 좋아요는 우리의 지속적인 동기 부여입니다!

 

发表 评论

귀하의 이메일 주소는 공개되지 않습니다. 必填 项 已 用 * 标注

맨위로 스크롤