この記事では、Redis 永続化におけるスナップショット方式 (RDB) について紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
Redis はメモリ上で読み書きを行うため、パフォーマンスは高いですが、サーバーの再起動によりメモリ上のデータが失われます。 Redis の再起動時に元のデータをディスクから復元できるように、メモリ内のデータをディスクに保存する必要があります。このプロセス全体を Redis 永続化と呼びます。
Memcached には永続化機能がないため、Redis の永続化も Redis と Memcached の主な違いの 1 つです。
1. いくつかの永続化メソッド
Redis の永続化には次の 3 つのメソッドがあります:
- スナップショット メソッド(RDB、Redis Database)特定の瞬間のメモリ データをバイナリ形式でディスクに書き込みます。
- ファイル追加メソッド (AOF、Append Only File) は、すべての操作コマンドを記録し、テキストとしてファイルに書き込みます。 form;
- ハイブリッド永続化メソッド、Redis 4.0 以降の新しいメソッドです。ハイブリッド永続化は、RDB と AOF の利点を組み合わせたものです。書き込み時には、まず現在のデータをファイルの先頭に書き込みます。 RDB形式で保存し、以降の運用コマンドをAOF形式でファイルに保存することで、Redisの再起動速度を確保できるだけでなく、データ損失のリスクも軽減できます。
各永続性ソリューションには特定の使用シナリオがあるため、RDB 永続性から始めましょう。
2. RDB の概要
RDB (Redis Database) は、特定の瞬間のメモリ スナップショット (スナップショット) をバイナリ形式でディスクに書き込むプロセスです。
3. 永続化トリガー
RDB の永続化トリガー方法には、手動トリガーと自動トリガーの 2 種類があります。
1) 手動トリガー
手動トリガーの永続化操作には、save
と bgsave
の 2 つがあります。それらの主な違いは、ブロックするかどうかに反映されます。 Redis メインスレッドの実行。
① save コマンド
クライアントで save
コマンドを実行すると、Redis の永続化がトリガーされますが、同時に Redis はブロックされるまでブロック状態になります。 RDB は永続化されます。完了すると、他のクライアントから送信されたコマンドに応答するため、運用環境では を注意して使用する必要があります。
save コマンドは次のように使用されます。
save を実行した後、 コマンドにより、永続化ファイル
dump.rdb の変更時間が変更されます。これは、
save が RDB 永続化を正常にトリガーしたことを意味します。
save コマンドの実行処理は下図のとおりです。
##② bgsave コマンド
bgsave (
save コマンドとの最大の違いは、bgsave
が子プロセスを fork() して永続化を実行することです。プロセス全体では、fork のみが実行されます。 () 子プロセス 短いブロッキングが発生する場合があります。子プロセスが作成された後、Redis のメイン プロセスは他のクライアントのリクエストに応答できます。プロセス全体をブロックする save
コマンドと比較すると、明らかに、 bgsave
コマンドの方が使用に適しています。 bgsave
コマンドは次の図のように使用されます。
##bgsave
2) 自動トリガー
RDB の自動永続化は主に次の状況で発生します。
① save m n
save m n
は、n 個のキーが m 秒以内に変更されると、永続化が自動的にトリガーされることを意味します。パラメータ m および n は、Redis 構成ファイルにあります。たとえば、save 60 1
は、60 秒以内に少なくとも 1 つのキーが変更された場合に、RDB 永続化がトリガーされることを示します。
永続性を自動的にトリガーする: 本質的には、設定されたトリガー条件が満たされた場合に、Redis が bgsave
コマンドを 1 回自動的に実行するということです。
注: 複数の save m n コマンドを設定すると、いずれかの条件が満たされた場合に永続化がトリガーされます。 たとえば、次の 2 つの save m n コマンドを設定します。
- save 60 10
- save 600 1
Redis キーの値が 60 秒以内に 10 回変更されると、永続化がトリガーされます。Redis キーの値が 60 秒以内に変更されると、永続化がトリガーされます。キー値の変更が 10 回未満の場合、Redis は Redis のキー値が 600 秒以内に少なくとも 1 回変更されたかどうかを判断し、変更された場合には永続化がトリガーされます。
②lushall
flushall
コマンドは、Redis データベースをクリアするために使用されます。運用環境では注意して使用する必要があります。Redis が flushall# を実行するとき、 ## コマンドを実行すると、自動永続化がトリガーされ、RDB ファイルがクリアされます。
実行結果は以下の図に示されています。
bgsave コマンドを実行し、RDB ファイルをスレーブ ノードに送信します。このプロセスにより、Redis 永続性が自動的にトリガーされます。
# RDB 保存的条件 save 900 1 save 300 10 save 60 10000 # bgsave 失败之后,是否停止持久化数据到磁盘,yes 表示停止持久化,no 表示忽略错误继续写文件。 stop-writes-on-bgsave-error yes # RDB 文件压缩 rdbcompression yes # 写入文件和读取文件时是否开启 RDB 文件检查,检查是否有无损坏,如果在启动是检查发现损坏,则停止启动。 rdbchecksum yes # RDB 文件名 dbfilename dump.rdb # RDB 文件目录 dir ./より重要なパラメーターは次のとおりです。
① save パラメータRDB の永続化条件をトリガーするパラメータを設定するために使用され、保存条件が満たされた場合にデータがハードディスクに永続化されます。
デフォルト設定の説明は次のとおりです:
- save 900 1: 900 秒以内に少なくとも 1 つのキー値が変更された場合、データがハードディスクに保存されることを示します。
- save 300 10: 300 秒以内に少なくとも 10 個のキー値が変更された場合、データがハードディスクに永続化されることを示します;
- save 60 10000: 少なくとも 10,000 個のキー値が変更された場合にデータが永続化されることを示します60 秒以内に変更すると、データはハードドライブに保存されます。
デフォルト値は yes
で、RDB ファイル圧縮を有効にすることを意味します。Redis は圧縮に LZF アルゴリズムを使用します。ファイル圧縮に CPU パフォーマンスを消費したくない場合は、この機能をオフに設定できますが、この機能の欠点は、ファイルの保存に多くのディスク容量が必要になることです。 ③ rdbchecksum パラメータ
デフォルト値は yes
で、ファイルの書き込みおよび読み取り時に RDB ファイルチェックを有効にし、破損がないかどうかをチェックするかどうかを示します。起動中に破損が発見された場合は起動を停止させていただきます。 5. 構成クエリ
コマンドを使用して、Redis の現在の構成パラメーターをクエリできます。クエリコマンドの形式は:
config get xxx たとえば、RDB ファイルのストレージ名の設定を取得したい場合は、config get dbfilename
を使用できます。
RDB のファイル ディレクトリをクエリするには、コマンド
を使用します。
6. 構成設定
以下の 2 つの RDB 構成を設定します。方法:
Redis 構成ファイルを手動で変更します。- コマンド ライン設定を使用します。たとえば、 config set dir "/usr/data"
- を使用します。 RDB格納ディレクトリを変更します。
: Redis 構成ファイルを手動で変更する方法はグローバルに有効です。つまり、Redis サーバーの再起動によって設定パラメータが失われることはなく、コマンド変更方法を使用します。 、Redisを再起動すると、失われます。ただし、Redis 構成ファイルを手動で変更してすぐに有効にする場合は、Redis サーバーを再起動する必要がありますが、コマンド方式では Redis サーバーを再起動する必要はありません。 Redis サーバーの起動時に、RDB ファイル dump.rdb が Redis ルート ディレクトリに存在する場合、Redis は自動的に RDB ファイルをロードして永続データを復元します。 ログから、Redis サービスがRDBファイルは起動時に正常に起動されました。 永続性を無効にすると、Redis の実行効率が向上します。データ損失を気にしない場合は、クライアントへの接続中に実行できます この記事を通じて、次のことが得られます。ご存知のとおり、RDB の永続化には手動トリガーと自動トリガーの 2 つの方法があり、保存ファイルが小さく Redis 起動時のデータ復旧が早いというメリットがありますが、デメリットとしてはデータ損失のリスクがあります。 RDBファイルのリストアも非常に簡単で、RDBファイルをRedisのルートディレクトリに置くだけで、Redis起動時に自動的にデータが読み込まれてリストアされます。 Redis サーバーの CPU 使用率が高すぎる場合、原因は何でしょうか?コメント欄に回答を書いていただければ幸いです。 https://redis.io/topics/persistence この記事は、https://segmentfault.com/a/1190000021036574 から転載されています。Redis の詳細については、次の点にご注意ください。 redis 入門チュートリアル 列。 ヒント: Redis 構成ファイルは Redis インストール ディレクトリのルート パスにあり、デフォルト名は redis.conf です。
7.RDB ファイルのリカバリ
ルート ディレクトリに dump.rdb ファイルがない場合は、まず dump.rdb ファイルを Redis のルート ディレクトリに移動してください。
RDB ファイルがロードされているかどうかを確認する
Redis には、RDB ファイルがロードされているかどうかを示す起動時のログ情報があります。Redis 起動コマンド src/redis- を実行します。以下の図に示すように、server redis.conf
: ヒント: Redis サーバーが RDB ファイルをロードしている間、ロード作業が完了するまでブロックされます。
8.RDB のメリットとデメリット
1) RDB のメリット
2) RDB のデメリット
9. 永続性を無効にする
次の図に示すように、config set save ""
コマンドを使用して Redis の永続性を無効にすることができます: 10. 概要
11. 考えられる質問
12.参考文献と謝辞
https://blog.csdn.net/ qq_36318234/article/details/79994133
https://www.cnblogs.com/ysocean/p/9114268.html
https://www.cnblogs. com/wdliu/p/9377278.html
以上がRedis 永続化のスナップショット メソッド (RDB) の詳細については、こちらをご覧ください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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