検索
ホームページデータベースRedisRedis 永続化メカニズムの分析例

Redis はデータをメモリに保存するため、プロセスが終了するとデータは失われます。 Redis の永続化メカニズムを通じて、メモリ内のデータをディスクに保存したり、再起動後にディスク ファイルからデータをロードしてメモリを補充したりできます。

Redis は、フル ミラー RDB と増分永続性 AOF という 2 つの永続化メカニズムをサポートしています。

RDB は Redis のスナップショットであり、期限切れになっていないすべてのキーと値のペアを Redis に保存します。

redis.conf:

dbfilename dump.rdb
dir /var/lib/redis



save 900 1 save 300 10 save 60 10000 save "" stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes

で RDB を構成する Redis プロセスが開始されるたびに、まず rdb ファイルが存在するかどうかが確認され、存在する場合は、ファイルの内容をメモリに取り込みます。

redis は RDB ファイルを自動更新する際、サブプロセスをフォークしてスナップショット保存を実行しますが、保存期間中はメインプロセスは通常通りサービスを提供できます。

コマンドを使用してスナップショットを保存することもできます:

  • save: ブロック方式でスナップショットを保存すると、redis は他のリクエストを処理できなくなります。保存期間中

  • bgsave: 子プロセスをフォークして保存作業を完了します。保存期間中、redis の通常のサービスは影響を受けません。

lastsave コマンドは、最新の RDB ファイル作成タイムスタンプを取得でき、保存が成功したかどうかを確認するために使用できます。

RDB はデータベースのスナップショットであり、作成されるたびにデータベース全体をファイルに書き込む必要があります。これは非常に時間がかかる操作であるため、頻繁に実行するのは難しく、例外が発生すると大量のデータが失われる可能性があります。

Redis は、増分永続化ツール AOF (Append Only ile) を提供します。AOF は、Redis データベース内のすべての書き込み命令を記録することによって永続化を実行します。命令は、Redis 通信プロトコルの形式で AOF ファイルに保存されます。

Redis プロセスが開始されると、AOF ファイルが存在するかどうかがチェックされ、存在する場合は、AOF 内の命令が順番に実行されてデータが復元されます。

Redis は、書き込みコマンドを実行するたびに AOF ファイルにログを追加しますが、新しいレコードはすぐにディスク (fsync) に書き込まれず、書き込みバッファーにキャッシュされます。

データ損失を避けるために、バッファ内のデータをディスクに書き込む戦略を構成できます。

バッファ内のデータをディスクに書き込むのは時間のかかる操作です。頻繁にディスクに書き込むとパフォーマンスに影響しますが、Redis がクラッシュして失われるデータが少なくなるため、アプリケーションのシナリオに基づいてトレードオフを行う必要があります。

AOF は冗長な命令を記録する可能性があります。同じキーに対して set 命令を 100 回実行すると、AOF ファイルには 100 個のレコードが存在しますが、データを回復するために保持されるのは最後の set 命令だけです。 AOF を書き換えると、AOF ファイルが整理され、不要なコマンド ログがクリーンアップされ (上書きされた set コマンドの削除など)、AOF ファイルのサイズが削減されます。

redis はバックグラウンドでの書き換え戦略を採用しています。つまり、子プロセスをフォークして、ソートされた AOF を一時ファイルに書き込みます。 BGREWRITEAOF を使用して、バックグラウンド書き換え操作を手動でトリガーします。

実際には、AOF の書き換えでは元の AOF ファイルは読み取られません。子プロセスは現在のデータのコピーを持ち、そのコピーに基づいて新しい AOF ファイルを直接生成します。

書き換え期間中、メイン プロセスは新しい書き込み操作を元の AOF ファイルと AOF 書き換えキャッシュに書き込みます。書き換えが失敗した場合でも、元の AOF ファイルには完全なデータが保存されます。子プロセスが AOF 書き換えを完了すると、メイン プロセスにシグナルを送信します。シグナルを受信したメイン プロセスは、AOF 書き換えキャッシュの内容を新しい AOF ファイルに書き込み、元のファイルを新しい AOF ファイルで上書きします。 AOFファイル。

Configure AOF in redis.conf:

appendonly yes  
  

appendfilename appendonly.aof  
  


appendfsync everysec 

    no-appendfsync-on-rewrite no   
  


auto-aof-rewrite-percentage 100  
  

auto-aof-rewrite-min-size 64mb

Redis は、起動時または最後の書き換え後に AOF ファイルのサイズを記録します。元のサイズの 100% に達すると (auto-aof-rewrite-percentage 構成)、再書き込みがトリガーされます。

書き換え操作は、現在の AOF ファイル サイズが auto-aof-rewrite-min-size より大きい場合にのみ実行されます。それ以外の場合は、新しいデータの量が指定されたパーセンテージを超えても、書き換えは実行されません。これにより、元のファイルが小さすぎるために発生する頻繁な初期書き換えの問題が回避されます。

以上がRedis 永続化メカニズムの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Redis:主要な機能を特定しますRedis:主要な機能を特定しますApr 12, 2025 am 12:01 AM

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redis:一般的なデータ構造のガイドRedis:一般的なデータ構造のガイドApr 11, 2025 am 12:04 AM

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

Redisカウンターを実装する方法Redisカウンターを実装する方法Apr 10, 2025 pm 10:21 PM

Redisカウンターは、R​​edisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Redisコマンドラインの使用方法Redisコマンドラインの使用方法Apr 10, 2025 pm 10:18 PM

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Redisクラスターモードの構築方法Redisクラスターモードの構築方法Apr 10, 2025 pm 10:15 PM

Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisキューの読み方Redisキューの読み方Apr 10, 2025 pm 10:12 PM

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Redisクラスターzsetの使用方法Redisクラスターzsetの使用方法Apr 10, 2025 pm 10:09 PM

RedisクラスターでのZsetの使用:Zsetは、要素をスコアに関連付ける順序付けられたコレクションです。シャード戦略:a。ハッシュシャーディング:ZSTキーに従ってハッシュ値を分配します。 b。範囲シャード:要素スコアに従って範囲に分割し、各範囲を異なるノードに割り当てます。操作の読み取りと書き込み:a。読み取り操作:ZSetキーが現在のノードのシャードに属している場合、ローカルで処理されます。それ以外の場合は、対応するシャードにルーティングされます。 b。書き込み操作:Zsetキーを保持しているシャードに常にルーティングされます。

Redisデータをクリアする方法Redisデータをクリアする方法Apr 10, 2025 pm 10:06 PM

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール