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.comtruehttp://www.bkjia.com/PHPjc/924543.html技術記事 Thinkphp キャッシュ テクノロジの詳細な説明、thinkphp キャッシュ テクノロジの詳細な説明 この記事では、thinkphp キャッシュ テクノロジを詳細に分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです: キャッシュのない Web サイトが...