這篇文章主要介紹了PHP基于文件存儲實現緩存的方法,實例分析了smarty模板中php通過文件存儲來實現緩存的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了PHP基于文件存儲實現緩存的方法。分享給大家供大家參考。具體如下:
在一些數據庫數據記錄較大,但是服務器有限的時候,可能一條MySQL查詢就會好幾百毫秒,一個簡單的頁面一般也有十幾條查詢,這個時候也個頁面加載下來基本要好幾秒了,如果并發量高的話服務器基本就癱瘓了,造成一個頁面很久也加載不下來,這個時候我們可以使用文件緩存來緩解下MySQL的壓力,下面給個使用例子。
- <?php
- //頁面業務邏輯處理,獲得結果
- $objPage = new Page_IndexModel($arrParams);
- //一系列的業務邏輯放在了objPage中,調用process方法獲得結果集
- $arrResult = $objPage->process();
- //獲得結果后smarty賦值
- $smarty->assign($arrResult);
- //輸出模板
- $smarty->display();
- ?>
現在我們用文件緩存來略過Page業務處理這一步
- <?php
- $cachFile = './index.php';
- //緩存文件存在且時間不超過一小時,則直接使用緩存的結果集,不在進行任何的MySQL查詢了
- if(file_exists($cacheFile) && time()-filemtime($cachFile) < 3600) {
- //使用緩存中的結果
- $arrResult = include($cachFile);
- } else {
- $objPage = new Page_IndexModel($arrParams);
- $arrResult = $objPage->process();
- $strContent = "<?php /n return ".var_export($arrResult, true)."/n;";
- //將結果集緩存
- file_put_contents($cachFile, $strContent);
- }
- //獲得結果后smarty賦值
- $smarty->assign($arrResult);
- //輸出模板
- $smarty->display();
希望本文所述對大家的php程序設計有所幫助。
新聞熱點
疑難解答