ホームページ  >  記事  >  データベース  >  Redis 永続化の AOF メソッド

Redis 永続化の AOF メソッド

齐天大圣
齐天大圣オリジナル
2020-05-22 09:49:051835ブラウズ

Redis の RDB メソッドでは永続性を実現できませんが、AOF メソッドでは永続性を実現できます。データが重要であり、損失が重大な結果を引き起こす場合、RDB 方式は明らかに不適切であり、AOF 方式を使用する必要があります。 aof メソッドは、新しい操作、変更された操作、および削除された操作のみを記録する mysql の binlog ログに似ています。違いは、redis は aof ファイルのサイズを減らすために時々 aof ファイルを書き換えることです。

AOF ワークフロー

ここで、最初にコマンドを aof_buf に書き込む必要があるのはなぜですか? aof ファイルを直接書き込むと、パフォーマンスは、ハードディスクの IO パフォーマンスに完全に依存します。 aof_buf を書き込むと、書き込みパフォーマンスが向上します。

Configuration

appendonly: aof 永続モードを有効にするかどうか。デフォルトは no です。有効にする場合は、「はい」に変更します。

dir: aof ファイル格納ディレクトリ

appendfilename: aof ファイル名

appendfsync: aof 同期モード。次の 3 つの値があります。

  • always: コマンドが書き込まれるたびに同期します。データ セキュリティは最高ですが、パフォーマンスは低くなります。

  • ##everysec: 毎秒同期します。デフォルトの方法です。高いです。パフォーマンス、安全 パフォーマンスは問題ありません

  • ##no: 同期操作はオペレーティング システムに任せられており、データのセキュリティは最悪です。
  • auto-aof-rewrite-percentage および auto-aof-rewrite-min-size これら 2 つの構成は、aof 書き換えメカニズムに関連します。これら 2 つの条件が同時に満たされる場合のみです。時間が経過すると、書き換えメカニズムがトリガーされます。

auto-aof-rewrite-min-size は、再書き込み時にファイル サイズがこの値より大きくなければならないことを意味します。デフォルト値は 64mb です。

auto-aof-rewrite-percentage は、現在のファイル サイズは、最後の書き換え後のファイル サイズよりも大幅に大きくなければなりません。

AOF 書き換えredis の AOF 書き換えメカニズムには、手動トリガーと自動トリガーの 2 つの方法があります。手動でトリガーするには、bgrewriteof コマンドを入力します。自動トリガーは、上記の 2 つの条件をすべて満たします。

なぜ再書き込みによってファイル サイズが削減できるのですか? いくつかの状況が考えられます:

    期限切れのキーと削除されたキーは記録されなくなります
  • lpush a、lpush b など、多くの単一操作は 1 回の操作で完了できます。書き換え後は、lpush a b になります。
  • aof の書き換えを見てみましょうプロセス

Redis 永続化の AOF メソッド

#bgrewriteof コマンドを実行します
  1. #メイン プロセスが子プロセスをフォークします

  2. 元の aof メカニズムは引き続き実行され、同時に新しいコマンドも aof_rewrite_buf に書き込まれます

  3. ##子プロセスは新しい aof ファイルを生成します
  4. 新しい aof ファイルが正常に生成されたことを親プロセスに通知し、aof_rewrite_buf のコマンドを新しい aof ファイルに追加し、古い aof ファイルを新しい aof ファイルで置き換えます。
  5. 以上の手順でaofの書き換えは完了です。
  6. サーバー上に複数の Redis サービスがある場合、過剰な IO と CPU の競合を防ぐために、再書き込み時間を分離することが最善であることに注意してください。

以上がRedis 永続化の AOF メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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