Redis永続的防御ソリューションの比較

Redisは、RDBとAOFの永続化メソッドを提供して、メモリ内のデータをディスクに保存し、偶発的なデータ損失を回避します

永続性RDBとAOFの比較

RDB

RDB(スナップショット)は、特定の時点でのサーバーのデータベース状態(空でないデータベースと関連するキーと値のペア)を、圧縮されたバイナリファイル(dump.rdb)に保存します。これは、デフォルトの永続化方法でもあります。
手動永続化コマンド:
SAVEコマンドは、Redisサーバープロセスをブロックします。
BGSAVEは子プロセスを生成し、子プロセスはRDBファイルの作成を担当し、サーバーの親プロセスは引き続きコマンド要求を処理します。


利点:RDBは非常にコンパクトなファイルであり、特定の時点でRedisデータセットを保存します。この種類のファイルは、バックアップに非常に適しています。


短所:サーバーに障害が発生したときにデータの損失を回避する必要がある場合、RDBは適していません。Redisでは、RDBファイルを保存する頻度を制御するためにさまざまなセーブポイントを設定できますが、RDBファイルはデータセット全体の状態を保存する必要があるため、簡単な操作ではありません。したがって、RDBファイルを少なくとも5分保存できます。この場合、ダウンタイムが発生すると、数分のデータが失われる可能性があります。

AOF

AOFパーシステンスは、フォーマット命令の形式で「操作+データ」を操作ログファイル(appendonly.aof)の末尾に追加します。追加操作が戻った(ファイルに書き込まれた、または書き込もうとしている)後、実際のデータが実行されます変更の場合、「ログファイル」はすべての履歴操作を保存します。サーバーがデータ回復を必要とする場合、このログファイルを直接再生してすべての操作を復元できます。

AOFはデフォルトで閉じられ、メソッドを開き、設定ファイルreds.confを変更します:appendonly yes
AOFファイル同期戦略、3つの有効な値があります:常に毎秒いいえ、デフォルトは毎秒


利点:AOF永続性を使用すると、Redisの耐久性が非常に高くなります。fsyncなし、毎秒fsyncごと、または書き込みコマンドが実行されるたびにfsyncなど、さまざまなfsync戦略を設定できます。AOFのデフォルトポリシーは1秒に1回のfsyncです。この構成では、Redisは引き続き良好なパフォーマンスを維持でき、障害が発生した場合でも1秒のデータしか失われません(fsyncはバックグラウンドスレッドで実行されるため、メインスレッドは、コマンドリクエストを処理するために引き続きハードワークできます)。


欠点:同じデータセットの場合、AOFファイルのボリュームは通常RDBファイルのボリュームよりも大きくなります。使用されるfsync戦略によっては、AOFはRDBよりも遅い場合があります。

 

 

おすすめ

転載: blog.csdn.net/qq_36807862/article/details/96274378