目次
デモ環境
2-2 RDB保存の使い方
2-3 RDB データ復旧
2-4 RDB -- 保存コマンドの仕組み
2-5 RDB -- bgsave コマンドの仕組み
3-7 AOF 書き換えルール
4. 概要
ホームページ データベース Redis Redis 永続化のフルバージョン

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

May 27, 2020 am 11:04 AM
redis


永続性の概要

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 までご連絡ください。

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

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:06 PM

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

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

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

Centos RedisでLUAスクリプト実行時間を構成する方法 Centos RedisでLUAスクリプト実行時間を構成する方法 Apr 14, 2025 pm 02:12 PM

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。

Redisの有効期限ポリシーを設定する方法 Redisの有効期限ポリシーを設定する方法 Apr 10, 2025 pm 10:03 PM

Redisデータの有効期間戦略には2つのタイプがあります。周期削除:期限切れのキーを削除する定期的なスキャン。これは、期限切れの時間帯-remove-countおよび期限切れの時間帯-remove-delayパラメーターを介して設定できます。怠zyな削除:キーが読み取られたり書かれたりした場合にのみ、削除の有効期限が切れたキーを確認してください。それらは、レイジーフリーレイジーエビクション、レイジーフリーレイジーエクスピア、レイジーフリーラジーユーザーのパラメーターを介して設定できます。

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

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

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

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

Debian Readdirのパフォーマンスを最適化する方法 Debian Readdirのパフォーマンスを最適化する方法 Apr 13, 2025 am 08:48 AM

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする

See all articles