ホームページ バックエンド開発 PHPチュートリアル K->V キャッシュ障害後の高い同時アクセスによって引き起こされるデータベース負荷の急激な増加の問題を簡単に処理する_PHP チュートリアル

K->V キャッシュ障害後の高い同時アクセスによって引き起こされるデータベース負荷の急激な増加の問題を簡単に処理する_PHP チュートリアル

Jul 20, 2016 am 11:13 AM
amp 戻る 対処する 無効 に導く 同時 データベース 毎日 単純 キャッシュ プログラミング アクセス 負荷 質問 高い 高い同時実行性

日常のプログラミングでは、一定量の同時実行性または大量のデータを伴う一部のデータベース操作では、フロントエンドにキャッシュ層を追加し、有効期限を設定するのが通常は mongoDB または memcached です。次のように:

同時実行量がそれほど多くない場合、またはデータ操作効率が非常に高い場合、このモードは基本的に問題ありません。
しかし、おそらく、(キャッシュ障害が発生し、同時実行性が高く、データベース操作時間が長い場合) を見たことがあるでしょうか?
1. キャッシュの無効化
2. 最初のプロセスはデータベースに行き、新しいデータを取得します。SQL + プログラムロジックが含まれる場合、5S かかります
3. この 5S の中で、2 番目、3 番目... . N 全員が期限切れのキャッシュを取得したばかりなので、全員がデータベースに接続しました...
4. 結果は明らかです、データベースはテーブルをロックします -> データベースは大量のプロセスを蓄積します -> データベースがハングするまで上!

それでは、この問題をどうやって解決すればいいのでしょうか?実際、最も簡単な解決策は次のとおりです:
ファイル ロックに似たマークを追加して、プログラムが現時点でキャッシュを更新しているかどうかを判断します。
「はい」の場合は、古いキャッシュに直接戻ります (マークが削除されないプログラムエラーによりキャッシュが更新されない問題を回避するために、マークには有効期限が設定されています)
そうでない場合は、設定しますマークを付けてからデータの取得とキャッシュを行い、最後にマークを削除します。

PS. 初めてキャッシュが生成された場合、一部のユーザーはデータを表示できない可能性がありますが、この可能性は非常に小さいため、手動生成などの他の方法で解決できます。


プロセスは次のとおりです:

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/440329.html技術記事日常のプログラミングでは、ある程度の同時実行性や大量のデータを伴うデータベース操作では、フロントエンドにキャッシュ層を追加し、有効期限を設定するのは通常 mongoDB か私です...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

高同時実行システムにおける Golang フレームワークのアーキテクチャ 高同時実行システムにおける Golang フレームワークのアーキテクチャ Jun 03, 2024 pm 05:14 PM

同時実行性の高いシステムの場合、Go フレームワークはパイプライン モード、Goroutine プール モード、メッセージ キュー モードなどのアーキテクチャ モードを提供します。実際の場合、同時実行性の高い Web サイトでは、Nginx プロキシ、Golang ゲートウェイ、Goroutine プール、およびデータベースを使用して、多数の同時リクエストを処理します。このコード例は、受信リクエストを処理するための Goroutine プールの実装を示しています。適切なアーキテクチャ パターンと実装を選択することで、Go フレームワークはスケーラブルで同時実行性の高いシステムを構築できます。

同時実行性の高いシナリオにおける PHP フレームワークのパフォーマンス 同時実行性の高いシナリオにおける PHP フレームワークのパフォーマンス Jun 06, 2024 am 10:25 AM

ベンチマーク テストによると、同時実行性の高いシナリオにおける PHP フレームワークのパフォーマンスは、Phalcon (RPS2200)、Laravel (RPS1800)、CodeIgniter (RPS2000)、および Symfony (RPS1500) です。実際の事例では、電子商取引 Web サイトのダブル イレブン イベント中に、Phalcon フレームワークが 1 秒あたり 3,000 件の注文を達成したことが示されています。

Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Jun 03, 2024 pm 02:20 PM

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。

コーディングの鍵: 初心者のための Python の力を解き放つ コーディングの鍵: 初心者のための Python の力を解き放つ Oct 11, 2024 pm 12:17 PM

Python は、学習の容易さと強力な機能により、初心者にとって理想的なプログラミング入門言語です。その基本は次のとおりです。 変数: データ (数値、文字列、リストなど) を保存するために使用されます。データ型: 変数内のデータの型 (整数、浮動小数点など) を定義します。演算子: 数学的な演算と比較に使用されます。制御フロー: コード実行のフロー (条件文、ループ) を制御します。

Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Oct 11, 2024 pm 08:58 PM

Python は、問題解決の初心者に力を与えます。ユーザーフレンドリーな構文、広範なライブラリ、変数、条件文、ループによる効率的なコード開発などの機能を備えています。データの管理からプログラム フローの制御、反復的なタスクの実行まで、Python が提供します

See all articles