ホームページ バックエンド開発 PHPチュートリアル PHP Webページキャッシュテクノロジーの利点とコード例の詳細な説明

PHP Webページキャッシュテクノロジーの利点とコード例の詳細な説明

Aug 01, 2020 pm 04:25 PM
php キャッシュテクノロジー ウェブページ

PHP Webページキャッシュテクノロジーの利点とコード例の詳細な説明

#静的フロントエンド: 動的ページを解析し、静的ページとして保存します

ファイル キャッシュ: クエリ結果をファイル (XML) として保存します

メモリ キャッシュ :memcache

php キャッシュ:画像、ビデオ、ファイル、データベース検索結果など、さまざまな形式のデータを保存するために使用できます。簡単に言うと、データがメモリに呼び出されてからメモリから読み取られるため、読み取り速度が大幅に向上します。 Memcache は danga のプロジェクトです。最初に LiveJournal によって提供されました。元々は LiveJournal へのアクセスを高速化するために開発され、その後多くの大規模 Web サイトで採用されました。 Memcached は 1 つ以上のサーバーでデーモンとして実行され、いつでもクライアントの接続と操作を受け取ります。

XCache は、オープン ソースのオペコード キャッシュ/オプティマイザーであり、サーバー上の PHP のパフォーマンスを向上させることができます。コンパイルされた PHP データを共有メモリにバッファリングすることで、繰り返しのコンパイル プロセスを回避します。バッファリングされたコンパイル済みデータを直接使用する機能速度を上げるためのコード。通常、ページの生成速度が 2 ~ 5 倍向上し、サーバーの負荷が軽減されます。

************** ********* ****************************************** ******** ******************************************* ******* ******************************

1. ユニバーサル キャッシュ テクノロジー :

データ キャッシュ: ここでいうデータ キャッシュとは、データベース クエリの PHP キャッシュ メカニズムを指します。ページにアクセスするたびに、まず対応するキャッシュ データが存在するかどうかを検出します。存在しない場合は、接続してデータベースがデータを取得します。クエリ結果をシリアル化し、ファイルに保存します。将来的には、同じクエリ結果がキャッシュ テーブルまたはファイルから直接取得されます。

最も広く使用されている例は、結果 ID をテーブルにキャッシュし、次回同じキーワードを検索するときに最初にキャッシュ テーブルを検索する Discuz の検索機能です。

一般的な方法として、複数のテーブルを関連付ける場合、添付されたテーブルの内容を配列として生成し、メインテーブルのフィールドに保存し、必要に応じて配列を分解します。読み取りできるのは 1 つのテーブルのみであることです。欠点は、2 つのデータを同期するためにさらに多くの手順が必要になることです。データベースが常にボトルネックになります。速度のためにハードディスクを犠牲にすることがこの点の重要なポイントです。

2. ページ キャッシュ:

ページにアクセスするたびに、まず対応するキャッシュされたページ ファイルが存在するかどうかを検出します。存在しない場合は、次のページに接続します。データベースを取得してデータを取得し、ページを表示すると同時にキャッシュページファイルを生成します。これにより、ページファイルは次回訪問時に有効になります。 (インターネット上のテンプレート エンジンと一部の一般的な PHP キャッシュ メカニズム クラスには通常、この機能があります)

3. 時間トリガー キャッシュ:

ファイルが存在するかどうかを確認し、タイムスタンプが有効期限の設定より小さい場合、ファイル変更タイムスタンプが現在のタイムスタンプから有効期限タイムスタンプを引いた値より大きい場合はキャッシュを使用し、それ以外の場合はキャッシュを更新します。

4. コンテンツトリガーのキャッシュ:

データが挿入または更新されると、PHP キャッシュ メカニズムが強制的に更新されます。

5. 静的キャッシュ:

ここでいう静的キャッシュとは、HTML や XML などのテキスト ファイルを直接生成し、更新があった場合に再生成する静的なキャッシュを指します。 . 、あまり変更のないページに適しているため、ここでは説明しません。

上記の内容はコード レベルのソリューションです。私は他のフレームワークを直接 CP していますが、変更するのが面倒です。内容は似ており、簡単に実行でき、さまざまな方法で使用できますが、次のコンテンツはサーバー向けです。エンドエンド キャッシュ ソリューション、非コード レベルでは、

6 を達成するには複数の関係者の協力が必要です。メモリ キャッシュ:

Memcached は高性能の分散メモリ オブジェクト PHP キャッシュ メカニズム システムは、データベースの負荷を軽減し、動的アプリケーションでのアクセス速度を向上させるために使用されます。

7. PHP バッファ:

eaccelerator、apc、phpa、xcache がありますが、これらについては説明しませんので、自分で調べてください。 , これが存在することを知っていれば問題ありません

8. MYSQL キャッシュ:

これは非コード レベルとも見なされます。従来のデータベースではこの方法が使用されます。実行時間は以下、0.09xxxなど

9. リバースプロキシベースのWebキャッシュ:

Nginx、SQUID、mod_proxyなど(apache2以降は分割) mod_proxy と mod_cache の場合)

10. DNS ポーリング:

BIND はオープン ソースの DNS サーバー ソフトウェアです。これは非常に重要なことです。自分で検索して、これが存在することを知ってください。

chinacache などの大規模な Web サイトがこれを行っていることは知っています。簡単に言うと、これはマルチサーバーです。同じページまたはファイルが異なるサーバーにキャッシュされ、関連するページが自動的に解析されます。北と南に従って、サーバー内で。

PHP Web ページのキャッシュの例

  • ob_start():页面缓存开始的标志,此函数一下的内容直至ob_end_flush()或者ob_end_clean()都保存在页面缓存中;
  • ob_get_contents():用来获取页面缓存中的内容,获取到以后呢,我们就可以想怎么处理这些内容都行了,过滤字段啦,匹配内容啦,都可以~~~ :)
  • ob_end_flush():表示页面缓存结束。并且经我验证,缓存的内容将输出到当前页面上,也就是可以显示缓存内容。

用此三个php函数,就可以实现强大的功能。如果数据库查询量较大,可以用cache来解决这个问题。

首先,设定过期时间,如果要求缓存文件2个小时过期,就可以设定cache_time为3600*2;通过filectime()来获取缓存文件的创建时间(或 filemtime()获取修改时间),如果当前时间跟文件的创建时间超过限定的过期时间,就可以通过上面三个函数,首先从数据库中取出数据,然后开始缓存ob_start(),然后把要生成的页面的html代码写在缓存中,缓存结束后通过ob_get_contents()获取到缓存的内容,然后通过fwrite把缓存内容写到静态页面html。

如果未过期,直接读取cache中的静态页面即可,避免了大量的数据库访问。

<?php
$_time =10;
$dir="D:\\php\\";
 
function cache_start($_time, $dir)
{
 $cachefile = $dir.&#39;/&#39;.sha1($_SERVER[&#39;REQUEST_URI&#39;]).&#39;.html&#39;;
 $cachetime = $_time;
 ob_start();
 if(file_exists($cachefile) && (time()-filemtime($cachefile) < $cachetime))
 {
  include($cachefile);
  ob_end_flush();
  exit;
 }
}
 
function cache_end($dir)
{
 $cachefile = $dir.&#39;/&#39;.sha1($_SERVER[&#39;REQUEST_URI&#39;]).&#39;.html&#39;;
 $fp = fopen($cachefile, &#39;w&#39;);
 fwrite($fp, ob_get_contents());
 fclose($fp);
 ob_end_flush();
}
 
cache_start($_time, $dir);
//以下是输出的内容,放在cache_start和cache_end两个方法之间
for ($i=0;$i<5;$i++)
{
 echo $i;
 sleep(1);
}
cache_end($dir);
?>
ログイン後にコピー

相关学习推荐:PHP编程从入门到精通

以上がPHP Webページキャッシュテクノロジーの利点とコード例の詳細な説明の詳細内容です。詳細については、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)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPの影響:Web開発など PHPの影響:Web開発など Apr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHP対Python:ユースケースとアプリケーション PHP対Python:ユースケースとアプリケーション Apr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles