テスト環境:
ウィンドウズ
RDB トリガーの仕組み
save bgsave flushall が自動的にトリガーされます (構成ファイルの構成)
保存コマンドのトリガー:
トリガー方法:最初に手動で dump.rdb ファイルを削除します。
save コマンドを実行すると、dump.rdb ファイルが自動的に生成され、テストは成功します。
bgsave コマンドは以下をトリガーします。
トリガー方法: dump.rdb ファイルを手動で削除する
bgsave コマンドを実行すると、dump.rdb ファイルが自動的に生成され、テストは成功します。
操作分析: このコマンドを実行すると、Redis はバックグラウンドで非同期にスナップショット操作を実行し、スナップショットはクライアントの要求にも応答できます。具体的なプロセスは、Redis プロセスが fork 操作を実行して子プロセスを作成し、RDB 永続化プロセスは子プロセスが担当し、完了後に自動的に終了します。ブロッキングはフォーク フェーズ中にのみ発生し、通常は短時間です。bgsave コマンドは、Redis 内部 RDB 操作のデフォルト モードでもあります。
flushall コマンドのトリガー
トリガー方法: dump.rdb ファイルを手動で削除してから、flushall コマンドをトリガーします。
flushall コマンドを実行すると、dump.rdb ファイルが自動的に生成され、テストは成功します。
保存と bgsave
道 | 保存コマンド | bgsave コマンド |
---|---|---|
読み書き | 同期する | 非同期 |
クライアント コマンドのブロック | はい | いいえ |
追加のメモリ消費 | いいえ | はい |
新しいプロセスを開始 | いいえ | はい |
rdbファイルを復元する
最初にダンプ、rdb ファイルを削除します
キーを削除
dump.rdb のデータを復元します
Windows 環境で redis-server.exe を直接起動するだけで (Linux 環境では bin ディレクトリに置きます)、テストは成功します。
RDB 永続化の長所と短所
欠点:
サーバーがダウンすると、最後に変更されたデータが失われます
永続化すると、子プロセスは fork になり、一定量のメモリ領域を占有します
アドバンテージ:
大規模データ復旧に最適!
データの整合性は必要ありません!
RDB 永続性の概要:
RDB は、redis のデフォルトの永続化方法です。
RDB 永続化トリガー メソッドには、構成ファイルで構成された save (一般的に使用されない)、bgsave、flushall、および save [time] [operationChange] が含まれます (テストは有効になっていません)。
RDB 永続化プロセス
指定された時間間隔内に redis メモリ内のデータ セットのスナップショットをディスクに書き込むことを指します. 実現原理は、指定された時間間隔内に redis サービスが最初に子プロセスを fork し、子プロセスがデータ セットを書き込むことです.一時ファイルに. 書き込みが成功したら、以前のファイルを置き換え、バイナリ圧縮で保存し、dump.rdb ファイルを生成してディスクに保存します。