ホームページ  >  記事  >  データベース  >  Redis データ永続性のための RDB

Redis データ永続性のための RDB

齐天大圣
齐天大圣オリジナル
2020-05-22 08:12:431588ブラウズ

Memcache とは異なり、Redis はデータをハードディスクに保存できます。 Redis は現在、RDB、AOF、RDB-AOF ハイブリッド永続性という 3 つの永続化メソッドを提供しています。データのセキュリティとバックアップが運用保守業務の焦点となるため、RDB 永続化の導入と適用シナリオを見てみましょう。

Redis で使用されるデフォルトの永続化メソッドは RDB です。RDB ファイルは使用するスペースが非常に少ないため、ファイルの生成と読み込み速度は非常に高速です。

RDB ファイルの生成

RDB ファイルの生成は、手動方法 自動方法 に分かれています。 。

まずは手動による方法を見てみましょう。RDB ファイルの生成をトリガーできるコマンドは 2 つあります。 save と bgsave の違いは、保存操作では、RDB ファイルの生成が完了するまで redis がブロックされることです。ただし、bgsave は redis をブロックせず、子プロセスをフォークアウトし、子プロセス内で rdb ファイルの生成を完了します。

自動モードには、次のようないくつかの状況があります。

  • 現在のキーの変更操作は、redis の Rdb の構成要件を満たします

  • マスター/スレーブ ノードがフル レプリケーションを実行する場合

  • Redis を再起動またはシャットダウンする場合 (Redis 永続モードは RDB)

ここでは、rdb の関連構成に焦点を当てます。

rdb ファイルが保存されるディレクトリは dir 構成項目によって決まります

# rdb文件保存目录
dir "/usr/local/redis/var"

ファイル名は dbfilename によって決まります

dbfilename "dump.rdb"

トリガー メカニズムはsave item

save 900 1
save 300 10
save 60 10000

上記の設定の意味は、900 秒以内に 1 回の変更操作があるとトリガーされ、300 秒以内に 10 回の変更操作があるとトリガーされ、 60 秒以内に 10,000 回の変更操作があった場合。

さらに、rdbcompression 構成項目は rdb ファイルを圧縮するかどうかを決定します。デフォルトは [はい] で、これは圧縮を意味し、これも推奨される方法です。

RDB ファイル生成プロセス

Redis データ永続性のための RDB

保存がほぼ放棄されたため、bgsave 操作を使用して Redis が自動的にトリガーされます, そのため、ここではbgsaveのプロセスのみを紹介します。

  1. bgsave を実行するとき、現在子プロセスが存在する場合、redis は以下の操作を実行せずに直接終了します。そうでない場合は、実行を続行します。

  2. redis メイン プロセスは子プロセスをフォークアウトします。 Redis はフォーク中にブロックされますが、時間は非常に短いです。

  3. フォークが成功した後、redis メイン プロセスは必要な作業を続行します。

  4. サブプロセスは新しい RDB ファイルを生成し、古い rdb ファイルを置き換えます。

  5. 置換操作が完了すると、子プロセスは親プロセスに通知し、親プロセスは操作の関連情報を保存します。

アプリケーション シナリオ

RDB ファイルはサイズが小さく、生成と読み込みが高速ですが、rdb 永続化メソッドこのリアルタイムの永続性を実現できないため、異常な状況では簡単にデータ損失が発生する可能性があります。さらに、異なるバージョンの rdb ファイルには互換性がない可能性があります。

上記の紹介を通じて、RDB ファイルが毎朝 RDB ファイルを生成するなど、災害復旧バックアップに非常に適していることがわかります。さらに、redis に保存されているデータがそれほど重要ではない場合 (キャッシュに redis を使用し、一部のデータが失われても影響がない場合など)、通常は RDB を使用する方が良い方法です。

よくある問題、redis データが保存されているパーティションがほぼいっぱいになった場合に、redis を停止せずに別のパーティションにデータを書き込む方法を紹介します。 config set dir '新しいパーティション ディレクトリ' を使用して、rdb ファイルが保存されているディレクトリを変更できます。次に、bgsave を実行して、新しいディレクトリに新しい RDB ファイルを生成します。

以上がRedis データ永続性のための RDBの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。