ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp キャッシュ技術詳細説明、thinkphp キャッシュ詳細説明_PHP チュートリアル

thinkphp キャッシュ技術詳細説明、thinkphp キャッシュ詳細説明_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:12:07
オリジナル
810 人が閲覧しました

thinkphp キャッシュ技術の詳細説明、thinkphp キャッシュ詳細説明

この記事では、thinkphp のキャッシュ テクノロジを詳細に分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

キャッシュのないウェブサイトに数百万、数千万のアクセスがある場合、キャッシュによって読み取りのプロセスを分割すると、サーバーとデータベースの負荷が大幅に軽減されます。 3 つの層があり、1 つ目はアクセス層、1 つ目はキャッシュ層、3 つ目はデータベース アクセス層です。キャッシュ層がない場合、アクセス層はデータベース アクセス層から直接データを読み取ります。キャッシュを設定した後、アクセス層はデータベース アクセス層から直接読み取るのではなく、キャッシュ層から​​データを読み取ります。

簡単な比較をしてみましょう。このページが 1 時間に 100 万回アクセスされ、アクセスされるたびにコンパイルされて生成されるとします。 2 つの方法を比較すると、このページが 10 分間定期的にキャッシュされる場合、つまり、キャッシュされたデータは 10 分に 1 回のみ生成され、1 時間に 6 回しか生成されません。当然のことですが、2 つの比較間のサーバー負荷の圧力比は数十万倍以上異なります。キャッシュ技術により、ピーク時の Web サイトの負荷がより管理しやすくなります。

Thinkphp には、File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis、Xcache などの多くのキャッシュ方法があります。次に、ファイル キャッシュについて説明します。

Thinkphp キャッシュ ファイルの構成

Home は私が構築したフロントエンド プロジェクトです。HomeConfconfig.php でキャッシュされた構成ファイルを見つけました。構成は次のとおりです。

コードをコピーします コードは次のとおりです:
配列を返します(
'DB_TYPE'=>'mysql'、
'DB_HOST'=>'127.0.0.1'、
'DB_NAME'=>'w3note'、
'DB_USER'=>'root'、
'DB_PWD'=>'123456'、
'DB_PORT'=>'3306'、
'DB_PREFIX'=>'w3_'、
'DATA_CACHE_TYPE'=>'file',// キャッシュ モードをファイルに設定します
'DATA_CACHE_TIME'=>'600',//キャッシュ期間 600 秒
); ?>

Thinkphpのキャッシュ機能の利用
thinkphp では、キャッシュにショートカット キャッシュ関数 S() を使用するのが好きです。その使用法は次のとおりです。


コードをコピーします

コードは次のとおりです:S('data',$Data);//データ識別子を使用して $Data データをキャッシュします S('data',$Data,600);// $Data データを 600 秒間キャッシュします
$Data = S('data') // キャッシュされたデータを取得します
; S('data',NULL);//キャッシュされたデータを削除します

以下は、フロントエンド プロジェクト コントローラーの完全なコードです:


コードをコピーします
コードは次のとおりです: class IndexAction はアクションを拡張します{
パブリック関数index(){
//キャッシュがある場合は、キャッシュされたデータを読み取ります
// キャッシュがない場合は、データベースからデータを読み取り、キャッシュに入れます
$lists=S('リスト'); if(emptyempty($lists)){ $news=M('ニュース'); $lists=$news->select(); S('リスト',$リスト,600); echo 'これはデータベースから直接読み取られたデータです';                                                                                   dump($list); ?>

http://127.0.0.1/Home/index.php/Index/index 出力にアクセスしてください。これはデータベースから直接読み取られたデータです:



コードをコピーします

コードは次のとおりです:
配列(10) {
[0] => 配列(12) {
["id"] => 文字列(1) "1"
["catid"] => 文字列(2) "13"
["title"] => string(4) "thinkphp のキャッシュ技術"
["content"] => string(8) "thinkphp のキャッシュ技術"
["タグ"] => string(4) "キャッシュ"
["親指"] => 文字列(0) ""
["説明"] => string(7) "thinkphp のキャッシュ技術"
["入力時間"] => 文字列(10) "1348370202"
["posid"] => 文字列(1) "1"
["ord"] => 文字列(1) "2"
["ヒット"] => 文字列(1) "1"
["ステータス"] => 文字列(1) "1"
}

初めて実行する場合、ページを更新すると、「これはデータベースから直接読み取られたデータです」という情報が表示されず、以前に生成されたキャッシュされたデータが読み取られたことを示します。 この記事が皆さんの ThinkPHP フレームワークに基づく PHP プログラムの設計に役立つことを願っています。

http://www.bkjia.com/PHPjc/924543.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/924543.html技術記事 Thinkphp キャッシュ テクノロジの詳細な説明、thinkphp キャッシュ テクノロジの詳細な説明 この記事では、thinkphp キャッシュ テクノロジを詳細に分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです: キャッシュのない Web サイトが...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート