ホームページ >データベース >Redis >Redis の永続化ソリューションとは何ですか?

Redis の永続化ソリューションとは何ですか?

WBOY
WBOY転載
2023-05-27 08:08:02794ブラウズ

永続化メソッドとは何ですか?違いは何ですか?

Redis 永続化ソリューションは、RDB と AOF の 2 つのタイプに分類されます。

RDB

RDB 永続化は、設定に応じて手動または定期的に実行でき、ある時点のデータベースの状態を RDB ファイルに保存する機能です。圧縮 特定の時点でのデータベースの状態を復元できるバイナリ ファイル。 RDBファイルはハードディスク上に保存されるため、redisがクラッシュしたり終了したりしても、RDBファイルが存在していればデータベースの状態を復元することができます。

RDB ファイルは、SAVE または BGSAVE を通じて生成できます。

SAVE コマンドは、RDB ファイルが生成されるまで redis プロセスをブロックします。プロセスのブロック期間中、redis はコマンド リクエストを処理できません。これは明らかに不適切です。

BGSAVE は子プロセスをフォークアウトし、その子プロセスが RDB ファイルの生成を担当します。親プロセスはプロセスをブロックすることなくコマンド リクエストの処理を続行できます。

AOF

AOF は RDB とは異なり、redis サーバーによって実行された書き込みコマンドを保存することでデータベースの状態を記録します。

AOF は、追加、書き込み、同期の 3 つのステップを通じて永続化メカニズムを実装します。

  1. #AOF 永続性がアクティブ化されると、サーバーが書き込みコマンドを実行した後、書き込みコマンドが aof_buf バッファーの末尾に追加されます

  2. サーバーで各イベント ループが終了する前に、flushAppendOnlyFile 関数が呼び出され、aof_buf の内容を AOF ファイルに保存するかどうかが決定されます。これは、appendfsync を構成することで決定できます。

  3. always ##aof_buf内容写入并同步到AOF文件
    everysec ##将aof_buf中内容写入到AOF文件,如果上次同步AOF文件时间距离现在超过1秒,则再次对AOF文件进行同步
    no ##将aof_buf内容写入AOF文件,但是并不对AOF文件进行同步,同步时间由操作系统决定
設定しない場合、デフォルトのオプションは毎秒になります。常には最も安全ですが (イベント ループ書き込みコマンドが 1 つだけ失われます)、パフォーマンスが低下し、毎秒になります。モードでは 1 秒間のデータしか失われませんが、いいえモードの効率は 1 秒ごとと同様ですが、AOF ファイルの最後の同期以降の書き込みコマンド データはすべて失われます。

以上がRedis の永続化ソリューションとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。