検索
ホームページデータベースRedisRedis の RDB および AOF 永続モードの欠陥に関する簡単な説明

この記事では、Redis の 2 つの永続モード (RDB と AOF) の欠点を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

Redis の RDB および AOF 永続モードの欠陥に関する簡単な説明

#[関連する推奨事項:

Redis ビデオ チュートリアル]

1. RDB 永続モードの欠陥

1. 問題の説明:

同時ルートが 200 あり、シミュレーションは Redis への書き込みを続けます。4 時間後、多数のインターフェイス呼び出しが失敗し始めます。エラー メッセージは次のとおりです:

{"data":{"sendResult":null},"base":{"returncode":"99999","returndesc":"系统异常:MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error."},"qrybase":{"total":0,"count":0,"start":0}}

2. 理由分析:

エラー メッセージを解釈し、ディスク領域の不足が原因であると考えましたが、以下に示すように、ディスクの 42% が残っていることがわかりました。

Redis の RDB および AOF 永続モードの欠陥に関する簡単な説明#したがって、エラー メッセージに基づいて、Redis ログをオンにしてストレス テストを続行するよう求められます。インターフェイスは依然としてエラーを報告しますが、Redis ログ情報から

バックグラウンドで保存できません: fork: メモリを割り当てられません

プロセスによるメモリの不適切な使用に関連しています。Redis のメイン プロセスが占有しているメモリを次のように確認します: 55% 近くを占有している*4G のメモリ

Redis の RDB および AOF 永続モードの欠陥に関する簡単な説明具体的な理由: Redis がデータをハードディスクに保存するときにメイン プロセスの一時停止アニメーションを回避するには、メイン プロセスのコピーをフォークする必要があります。その後、Fork プロセスでハードディスクへのデータ保存が完了します。メインプロセスが 2.2GB のメモリを使用している場合、子プロセスを Fork するときにさらに 2.2GB が必要になります。このとき、メモリが十分ではなく、Fork は失敗します。データは保存されますが、ハードドライブも故障しました。

3. 軽減策 (問題を根本的に解決できない):

3.1 redis.conf ファイルの構成項目 stop-writes-on-bgsave-error no を変更します (デフォルト値はyes)、つまり、bgsave スナップショット操作でエラーが発生した場合、ディスクへのデータの書き込みを停止します。これにより、後続の書き込みエラーは失敗します。後続の書き込み操作に影響を与えないようにするには、この値を no に変更する必要があります。

3.2 カーネル パラメーターを変更します (以下の 3 つ) 方法)、ただし root 権限が必要です:

(1)	编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效
(2)sysctl vm.overcommit_memory=1
(3)echo 1 > /proc/sys/vm/overcommit_memory

2. AOF 永続モードの欠陥

1.問題 1 の説明:

Redis マスター/スレーブ すべてのノードが AOF モードをオンにし、200 の同時接続で、Redis への連続書き込みをシミュレートしました。15 分後、多数のインターフェイス呼び出しが失敗し始め、Linux 仮想Redis が配置されているサーバーがハングしました。

インターフェイス エラーは次のとおりです:

{"data":null,"base":{"returndesc":"系统异常","returncode":"999999"},"qrybase":null}
Biz(dubbo)接口报错如下:
2015-06-05 11:28:28.760 [DubboServerHandler-X.X.X.X:20882-thread-173] ERROR  - error while validate jedis!
redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out

原因分析:

ダボ インターフェイス エラー メッセージから、インターフェイス API 操作 Redis タイムアウトが原因であることがわかります。システム ログと IO 監視から判断すると、以下に示すように、上記の問題は IO ボトルネック (システム IO がビジーすぎる) によって引き起こされていることがわかります。

# システム ログからも、IO ブロック時間が 120 秒を超え、システム セキュリティ メカニズムが原因でマシンがハングしていることがわかります。

概要Redis の RDB および AOF 永続モードの欠陥に関する簡単な説明

テスト結果は、AOF モードには最も明らかな欠陥があることを証明しています。つまり、アクセス圧力が高い場合、IO がパフォーマンスのボトルネックとなり、サービスが利用できなくなるということです。

Redis の RDB および AOF 永続モードの欠陥に関する簡単な説明3. 軽減策 (問題を根本的に解決できない)

/etc/sysctl.conf を編集し、次の設定を追加します:

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

次に、sysctl -p で設定を行います。ファイルが有効になります。

問題 2 の説明:

2 つのファイル (.aof または .rdb) のサイズがシステム メモリの 80% を超える場合、AOF モードと RDB (スナップショット モード) のどちらが使用されるかの場合、Redis プロセスはシステムダウンによって強制終了され、サービスが利用できなくなります。

概要

上記の問題は、Redis を使用する場合は、事前にシステム メモリ容量を計画する必要があることを示しています。これは、Redis がクラッシュすると大量のデータが失われ、回復できなくなるためです。

プログラミング関連の知識について詳しくは、

プログラミング ビデオ

をご覧ください。 !

以上がRedis の RDB および AOF 永続モードの欠陥に関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Redis vs. SQLデータベース:重要な違​​いRedis vs. SQLデータベース:重要な違​​いApr 25, 2025 am 12:02 AM

RedisデータベースとSQLデータベースの主な違いは、Redisが高性能および柔軟性要件に適したインメモリデータベースであることです。 SQLデータベースは、複雑なクエリとデータの一貫性要件に適したリレーショナルデータベースです。具体的には、1)Redisは高速データアクセスとキャッシュサービスを提供し、キャッシュおよびリアルタイムのデータ処理に適した複数のデータ型をサポートします。 2)SQLデータベースは、テーブル構造を介してデータを管理し、複雑なクエリとトランザクション処理をサポートし、データの一貫性を必要とするeコマースや金融システムなどのシナリオに適しています。

Redis:データストアとサービスとしてどのように機能するかRedis:データストアとサービスとしてどのように機能するかApr 24, 2025 am 12:08 AM

redisactsassassadatastoreandaservice.1)asadatastore、itusesin memorystorage for fastorations、supporting variousdatastructureSlike-key-valuepairsandsortedsets.2)asaservice、iteasruascruascriptingrupting criptingforceptingpurplecomplecomplecprexoperations

Redis vs.その他のデータベース:比較分析Redis vs.その他のデータベース:比較分析Apr 23, 2025 am 12:16 AM

他のデータベースと比較して、Redisには次の独自の利点があります。1)非常に速い速度、および読み取り操作は通常、マイクロ秒レベルにあります。 2)豊富なデータ構造と操作をサポートします。 3)キャッシュ、カウンター、公開サブスクリプションなどの柔軟な使用シナリオ。 Redisまたはその他のデータベースを選択する場合、特定のニーズとシナリオに依存します。 Redisは、高性能および低遅延のアプリケーションでうまく機能します。

Redisの役割:データストレージと管理機能の調査Redisの役割:データストレージと管理機能の調査Apr 22, 2025 am 12:10 AM

Redisは、データストレージと管理において重要な役割を果たしており、複数のデータ構造と持続性メカニズムを通じて最新のアプリケーションの中核となっています。 1)Redisは、文字列、リスト、コレクション、注文されたコレクション、ハッシュテーブルなどのデータ構造をサポートし、キャッシュや複雑なビジネスロジックに適しています。 2)RDBとAOFの2つの持続方法を通じて、Redisは信頼できるストレージとデータの迅速な回復を保証します。

Redis:NOSQLの概念の理解Redis:NOSQLの概念の理解Apr 21, 2025 am 12:04 AM

Redisは、大規模なデータの効率的なストレージとアクセスに適したNOSQLデータベースです。 1.Redisは、複数のデータ構造をサポートするオープンソースメモリデータ構造ストレージシステムです。 2.キャッシュ、セッション管理などに適した、非常に速い読み取り速度と書き込み速度を提供します。 4.使用例には、基本的なキー値ペア操作と高度なコレクション重複排除関数が含まれます。 5.一般的なエラーには、接続の問題、データ型の不一致、メモリオーバーフローが含まれるため、デバッグに注意する必要があります。 6.パフォーマンス最適化の提案には、適切なデータ構造の選択とメモリ排除戦略の設定が含まれます。

Redis:実際のユースケースと例Redis:実際のユースケースと例Apr 20, 2025 am 12:06 AM

現実世界でのRedisのアプリケーションには、1。キャッシュシステムとして、データベースクエリを加速し、2。Webアプリケーションのセッションデータを保存するには、3。リアルタイムランキングを実装する4。メッセージ配信をメッセージキューとして簡素化する。 Redisの汎用性と高性能により、これらのシナリオで輝きます。

Redis:その機能と機能の調査Redis:その機能と機能の調査Apr 19, 2025 am 12:04 AM

Redisは、高速、汎用性、豊富なデータ構造のために際立っています。 1)Redisは、文字列、リスト、コレクション、ハッシュなどのデータ構造をサポートし、コレクションを注文します。 2)メモリを介してデータを保存し、RDBとAOFの持続性をサポートします。 3)Redis 6.0から始めて、マルチスレッドI/O操作が導入されました。これにより、高い並行性シナリオでパフォーマンスが向上しました。

RedisはSQLまたはNOSQLデータベースですか?答えが説明しましたRedisはSQLまたはNOSQLデータベースですか?答えが説明しましたApr 18, 2025 am 12:11 AM

redisisclassifiedsaNosqldatabasebasesakey-valuedataModelinsteaded ofthetraditionaldatabasemodel.itoffersspeedand andffficability、makingidealforreal-timeaplications andcaching、butmaynotbesbesutable fors cenariois requiring datientiantientioniity

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

Video Face Swap

Video Face Swap

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

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール