この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 24125|答える: 2

[レディス] RedisにおけるRDBとAOFの永続性の違い

[リンクをコピー]
掲載地 2021/02/04 13:47:27 | | | |
Redis Windows 64ビットダウンロード、公式ダウンロードアドレス
https://www.itsvse.com/thread-2576-1-1.html

Redisには3つのスタート方法があります
https://www.itsvse.com/thread-4008-1-1.html

redisにおけるセーブとbgsaveの違い
https://www.itsvse.com/thread-4010-1-1.html

CentOS 7インストール Redis 5.0.3チュートリアル
https://www.itsvse.com/thread-7201-1-1.html


1. 序文

最近では、Redisが複数のビジネスプロセス間でデータ共有を促進するためのキャッシュとしてプロジェクト内で使用されています。 Redisのデータはメモリに保存されているため、永続性の設定がなければRedisの再起動後にすべてのデータが失われます。そのため、redisの永続性機能を有効にしてデータをディスクに保存する必要があります。redisを再起動するとディスクからデータを復元できます。 Redisは永続化の2つの方法を提供しています。RDB永続性(原理としてはReidsのデータベースレコードをディスク上のRDB永続性にダンプすること)と、もう1つはAOF永続性(原則としてReidsの操作ログを付録の形でファイルに書き込む方法です)です。 では、これら二つの永続化方法の違いは何で、どのように変更すればよいのでしょうか? インターネットで読むほとんどの情報は、これら二つの方法の設定や使い方を紹介していますが、その違いやどのアプリケーションシナリオで使うべきかの説明はありません。


2. 両者の違い

RDBの永続性とは、指定された時間間隔内にメモリ内のデータセットのスナップショットをディスクに書き込むことを指します。実際の操作プロセスは、サブプロセスをフォークし、まずデータセットを一時ファイルに書き込み、書き込みが成功した後に前のファイルを置き換え、バイナリ圧縮で保存することです。



AOFの永続性は、サーバーが処理したすべての書き込み・削除操作をログの形で記録し、クエリ操作は記録されませんが、テキストで記録されます。ファイルを開いて詳細な操作記録を確認できます。



3. 両者の利点と欠点

RDBの利点は何ですか?

1) これを使えば、Redisのデータベース全体にファイルが1つだけ残ることになり、ファイルバックアップに最適です。 例えば、直近24時間のデータを毎時間アーカイブしたい場合や、毎日直近30日間の記録もアーカイブしたい場合などです。 このようなバックアップ戦略があれば、システムに壊滅的な故障が起きた場合でも簡単に復旧できます。

2). RDBは災害復旧に非常に優れた選択肢です。 なぜなら、単一のファイルを簡単に圧縮して別のストレージ媒体に転送できるからです。

3) パフォーマンスの最大化。 Redisサービスプロセスの場合、永続性を開始する際に必要なのは子プロセスのフォークアウトだけで、子プロセスがこれらの永続性タスクを完了するため、サービスプロセスがIO操作を行うのを大幅に回避できます。

4)AOFメカニズムと比較すると、データセットが大きい場合、RDBの起動効率は高くなります。

RDBの欠点は何ですか?

1). データの高可用性を確保したい、つまりデータ損失を最大限に避けたい場合、RDBは適していません。 なぜなら、スケジュールされた永続化の前にシステムがダウンすると、以前にディスクに書き込まれたデータが失われてしまうからです。

2). RDBはフォークサブプロセスを通じてデータ永続性を支援するため、データセットが大きい場合、サーバー全体が数百ミリ秒、場合によっては1秒間サービス停止を引き起こすことがあります。

AOFの利点は何ですか?

この仕組みは、より高度なデータセキュリティ、すなわちデータの永続性をもたらすことができます。 Redisには3つの同期戦略が用意されており、1秒あたりの同期、修正ごとの同期、そして非同期です。 実際、1秒あたりの同期も非同期で行われており、その効率も非常に高いです。違いは、システムがダウンすると、その1秒以内に修正されたデータが失われる点です。 そして、修正が同期されるたびに、それを同期永続性と考えることができます。つまり、発生したすべてのデータ変更は即座にディスクに記録されます。 この方法は最も効率的でないことが予想されます。 同期がないことについては、これ以上言う必要はありません。皆さんが正しく理解できると思います。

2). この機構はログファイルの書き込みに付加モードを採用しているため、書き込み中にダウンタイムがあっても、ログファイル内に既に存在する内容は破壊されません。 しかし、もしデータが半分しか書かず、今回システムがクラッシュしても心配しないでください。Redis-check-aofツールを使って、次のRedis開始前にデータ一貫性の問題を解決できます。

3). ログが大きすぎる場合、Redisは自動的に書き換えメカニズムを有効化できます。 つまり、Redisは追加モードで修正データを古いディスクファイルに継続的に書き込み、この期間中に実行される修正コマンドを記録する新しいファイルも作成します。 したがって、書き換え時にはデータセキュリティをより確実に保てます。

4)AOFには、すべての修正を記録した明確で分かりやすいログファイルが含まれています。 実際、このファイルを通じてデータの再構築も完了できます。

OVのデメリットは何ですか?

1)同じ数のデータセットの場合、OFファイルは通常RDBファイルより大きいです。 RDBはAOFよりも大規模なデータセットを高速で復元します。

2)同期戦略によっては、AOFは実行効率の面でRDBよりも遅い傾向があります。 要するに、同期ポリシーの効率は1秒あたり比較的高く、同期無効化ポリシーの効率はRDBと同じくらい効率的です。

この2つを選ぶ基準は、システムがキャッシュ一貫性の向上(AOF)と引き換えにパフォーマンスを犠牲にする意思があるか、書き込み操作が頻発する際にはバックアップを有効にしない代わりに高性能を追求し、手動でSaveを実行する際にバックアップ(RDB)を行うかどうかです。 RDBはより最終的な一貫した意味を持っています。 しかし、実際の生産環境はその両方の組み合わせのようなものです。


4. 一般的な構成

RDBの永続化構成

Redisはデータセットのスナップショットをdump.rdbファイルにダンプします。 さらに、設定ファイルからRedisサーバーのダンプスナップショットの頻度を変更することもできます。6379.confファイルを開くと「save」を検索し、以下の構成情報が表示されます。



AOF永続構成

Redisのプロファイルで同期する方法は3つあります。



完全な構成:



テストディレクトリの下に新しいファイル「appendonly.aof」が作成されます。以下の通りです:





先の:DataTablesはテーブルエクスポート、Excel、CSV、印刷を実装しています
次に:SQL Serverはトランザクションの隔離レベルを設定します
 地主| 掲載地 2021/02/08 11:45:25 |
Redisはデフォルトのポート番号を変更し、アクセスパスワードを設定します
https://www.itsvse.com/thread-2577-1-1.html
掲載地 2021/09/22 20:26:16 |
学ぶことを...
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com