検索
ホームページデータベースRedisRedis 永続化のフルバージョン


永続性の概要

RDB

AOF

RDB と AOF

の違い永続化アプリケーションのシナリオ


永続化関数の場合、実際には非常に単純であり、それほど複雑ではありません


デモ環境


##centos7.0

redis4.0

redis 格納ディレクトリ:/usr/local/redis

redis.conf 保存ディレクトリ:/usr/local/redis/data


##1. 永続性の概要


redis 内のすべてのデータはメモリに保存されるため、redis がクラッシュするとデータが失われます。 Redis の永続化とは、データをディスクに保存することです。永続的なストレージ メディアを使用してデータ プロセスを保存し、特定の時点で保存されたデータを復元する動作メカニズムは、永続性と呼ばれます。


永続化プロセスでは何が保存されますか?


#最初のスナップショット フォームはデータ結果を保存し、データ (以下で説明する RDB) に焦点を当てます。


2 番目のタイプの操作プロセスであるストレージ操作プロセスは、以下で説明する AOF であるデータ操作プロセスに焦点を当てています


##2. RDB


2-1 RDB起動モード -- コマンドの保存


以下の図はredis.confの設定情報です。実行後 保存後、dump.rdb ファイルが生成されます。

Redis 永続化のフルバージョン#値を設定して、/usr/local/redis に保存します。 /data ファイル dump6379.rdb が存在します。

Redis 永続化のフルバージョン


2-2 RDB保存の使い方


  • dbfilename dump6379.rdb: RDB ファイル名を設定します。デフォルト値は dump.rdbです。
  • dir: rdb または aof ファイルを保存するパス
  • rdbcompression yes:保存時にデータを圧縮します。デフォルトは、lzf 圧縮を使用して、yes です。
  • rdbchecksum yes: RDB ファイル形式の検証を実行するかどうかを設定します。この検証プロセスは、ファイルの書き込みと読み取りの両方で実行されます


2-3 RDB データ復旧


実は、他のリレーショナル データベース復旧と比較して、このデータ復旧は基本的に操作が必要ありません。再起動してください


2-4 RDB -- 保存コマンドの仕組み


保存を実行すると、 Redis を要求する他のクライアントからの命令は、保存命令が完了するまで待機します。保存命令はシングルスレッドで実行されるため、実行時間が長すぎると、他のユーザーが正常にデータを保存できなくなる原因となります。したがって、このコマンドはデフォルトでは放棄されます。以下で紹介する bgsave が代わりに使用されます


2-5 RDB -- bgsave コマンドの仕組み


Redis 永続化のフルバージョン

bgsave が Redis で実行される場合バックグラウンド保存が開始されたことを直接返します


#現時点ではログ ファイルを確認しています。bgsave コマンドは、保存ブロックの問題に対して最適化されています

Redis 永続化のフルバージョン


#2-5 RDB -- 設定ファイルの自動起動


#
以下配置是默认配置
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes


Redis 永続化のフルバージョン

#save [時間] [キー変更量]


つまり、300 秒以内に 10 個のキー値が変更された場合、bgsave がバックグラウンドで実行されます


##3. AOF


3-1 AOF の概念

AOF ファイルにはコマンドの操作を実行するプロセスが格納されており、データの復旧もその操作プロセスを使用して行われます。



3-2 AOFデータ書き込み処理

Redis 永続化のフルバージョン

#redis コマンドを実行します


##redis の AOF によってコマンド バッファーが更新されます


その後、特定の方法に従って redis.conf に設定された .aof ファイルに同期します


3-3 AOF 書き込みデータ 3 つの戦略


##常に: 実行されたコマンドは AOF ファイルに保存されますが、データ エラーはなく、パフォーマンスは低下します。

# の使用は推奨されません。 ## Everysec: バッファ内の命令を毎秒 AOF ファイルに同期します。データの精度とパフォーマンスが高くなります。推奨されており、デフォルトの構成でもあります。ただし、システムが突然クラッシュすると、1 秒以内のデータが失われます。
    #いいえ: AOF ファイルへの各同期のサイクルはオペレーティング システムによって制御されており、プロセス全体は制御できません


3-4 AOF 機能がオンになりました


  • Configuration: appendonly yes|no
  • Function: AOF 永続化機能を有効にするかどうか、デフォルトは無効です
  • Configuration: appendfsync always| Everysec | no
  • 関数: AOF 書き込みデータ戦略
  • 構成: appendfilename filename
  • 関数: AOF 永続ファイル名、デフォルト名は appendonly.aof です。


Redis 永続化のフルバージョン

次に、redis サービスを再起動します。usr/local/redis/ を使用できます。 data ディレクトリ 以下に appendonly.aof ファイルが表示されます。

Redis 永続化のフルバージョン

次に、redis クライアントでコマンドを実行してチェックアウトします。データが appendonly.aof ファイルに保存されることがわかります。

Redis 永続化のフルバージョン


#3-5 AOF 書き込みデータに関する問題


まずケースを見てみましょう。名前キーを繰り返し設定した後、appendonly.aof ファイルを開いて表示しました。3 つの操作があることがわかりますが、これら 3 つの操作はすべて 1 つのキーで変更されています。最後のキーだけを保存することはできないでしょうか?この質問では、引き続き下を見ていきます

Redis 永続化のフルバージョン


##3-6 AOF 書き換え


#たとえば、上記では set name コマンドを 3 回実行しましたが、最終的に必要なのは最後の実行の記録だけです。つまり、最後の実行レコードのみが必要です。他のレコードは必要なく、圧縮データは aof ファイルに書き換えられます。


書き換え後、ディスク使用率が向上しました

また、データ復旧の速度も速くなります

永続化の効率も向上します


3-7 AOF 書き換えルール


  • プロセス内のタイムアウトしたデータはファイルに書き込まれなくなります
  • del、## などの削除命令を無視します。 #hdel、srem。また、「3-5. キーに対する連続操作」で述べた問題もあります。
  • 同じデータの複数の書き込みレコードが 1 つのレコードにマージされます:
  • lpush list a lpush lsit b lpush list clpush list a b c に変換できます。


#3-8 AOF 手動書き換え


コマンド:

bgrewriteaof


質問 3 ~ 5 に従って、コマンド ラインで bgrewriteaof コマンドを実行し、appendonly.aof ファイルを表示します


実行後、ファイルが小さくなり、ファイル内に命令が 1 つしかないことがわかります。

##

Redis 永続化のフルバージョン


3-9 AOF 手動書き換えの動作原理


Redis 永続化のフルバージョン

##3-10 AOF 自動書き換え


構成:

auto -aof-rewrite-percentage 100 | auto-aof-rewrite-min-size 64mb

トリガー比較パラメーター: aof_current_size | aof_base_size

##

いつ aof_current_size > auto-aof-rewrite-min-size 64mb が書き換えを開始するか


この画像はインターネットからのものです

Redis 永続化のフルバージョン


##3-11 AOF ワークフローとリライト フロー = プロセス


Redis 永続化のフルバージョン

Redis 永続化のフルバージョン##


4. 概要


以上が Redis 永続化の内容のすべてです。

以上が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ヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン