Redis持続化方式——RDB

1580 ワード

RDB


RDBは何ですか。


Redisがデータを永続化する2つの方法の1つであり,もう1つはAOFである.Redisは、定期的にrbdファイルにデータスナップショットを保存し、起動時にrdbファイルを自動的にロードし、以前に保存したデータを復元します.

RDBトリガタイミング

  • 手動トリガは、SAVEまたはBGSAVEによってRDBバックアップを行うことができる
  • SAVEはrdbSaveを直接呼び出し、保存が完了するまでRedisメインプロセスをブロックする.プライマリ・プロセスがブロックされている間、サーバはクライアントの要求を処理できません.
  • BGSAVE forkは、rdbSaveを呼び出し、保存が完了した後にメインプロセスに信号を送信し、保存が完了したことを通知するサブプロセスを出力する.Redisサーバは、BGSAVEの実行中もクライアントの要求を処理し続けることができる.

  • 自動トリガは、条件を満たすためにRDBバックアップを自動的にトリガするようにRedisのプロファイルで設定することができる.
  • プロファイルにsave 60 1000を加えると、60秒以内にデータ変更が1000回に達した場合、RDBバックアップをトリガする条件を満たすことを示す.複数の条件を満たすように構成すると、RDBバックアップ
  • がトリガーされる.
  • 他のマスターコピー可能な場合はスレーブノードの最新情報にコピーするため
  • もトリガーされる.
    shutdownコマンドを使用して正常にラインオフする前に1回トリガーされます

    RDBの長所と短所

  • の利点
  • は性能への影響が最も小さく、RedisはRDBスナップショットを保存する際にforkアウトサブプロセスで行われ、Redisがクライアント要求を処理する効率にはほとんど影響しない.
  • は、AOFに比べてデータのリカバリ速度が速く、データのリカバリ速度が速い.
  • はデータベースの災害対応バックアップに適しており、生産されたRDBファイルはHDFSなどの信頼性の高いファイルシステムに移動することができる.

  • の欠点
  • は頻繁にバックアップをトリガするのに適していないため、バックアップされていないデータはダウンタイム時に失われます.
  • Redis格納データ量が大きすぎる場合、Forkサブプロセスの場合、Redisの可用性
  • に影響します.
  • バイナリファイルは、人工的に読み取ることができず、直接人工的に介入することはできません.


  • 長所と短所というより、私たちは実際に適用シーンを考えて、完璧な技術がなくて、適切なシーンを使う限り、彼は正しいです.

    RDBファイル生産プロセス

  • Redis forkサブプロセス
  • サブプロセスは、一時的なRDBファイル
  • にデータを書き込む.
  • サブプロセスが一時的なRDBファイルの書き込みを完了すると、完了したRDBファイルは、古いRDBファイル
  • を上書きする.
    これにより、RDBのバックアップが完了し、バックアップの失敗によって以前のバックアップデータに影響を与えることはありません.