久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

ThinkPHP實現靜態緩存和動態緩存示例代碼

本篇文章主要介紹了ThinkPHP實現靜態緩存和動態緩存示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

靜態緩存

要使用靜態緩存功能,需要開啟HTML_CACHE_ON參數,并且使用HTML_CACHE_RULES配置參數設置靜態緩存規則文件。

定義靜態規則

'HTML_CACHE_ON'   =>  true, // 開啟靜態緩存
'HTML_CACHE_TIME'  =>  60,  // 全局靜態緩存有效期(秒)
'HTML_FILE_SUFFIX' =>  '.shtml', // 設置靜態緩存文件后綴
'HTML_CACHE_RULES' =>   array( // 定義靜態緩存規則
   // 定義格式1 數組方式
   '靜態地址'  =>   array('靜態規則', '有效期', '附加規則'), 
   // 定義格式2 字符串方式
   '靜態地址'  =>   '靜態規則', 
)

靜態緩存文件的根目錄在HTML_PATH定義的路徑下面,并且只有定義了靜態規則的操作才會進行靜態緩存。 并且靜態緩存支持不同的存儲類型。 靜態緩存僅在GET請求下面有效。

靜態地址

全局的操作靜態規則

'read'=>array('{id}',60)//定義所有的read操作的靜態規則

定義全局的控制器靜態規則

'user:'=>array('User/{:action}_{id}','600')//定義所有的User控制器的靜態規則

定義某個控制器的操作的靜態規則//定義Blog控制器的read操作進行靜態緩存

'blog:read'=>array('{id}',0)//參數為0表示永久緩存

定義全局的靜態緩存規則

'*'=>array('{$_SERVER.REQUEST_URI|md5}')//這個屬于特殊情況下的使用,任何模塊的操作都適用

靜態規則

靜態規則是用于定義要生成的靜態文件的名稱,靜態規則的定義要確保不會沖突。

使用系統變量

{$_×××|function}//_GET、_REQUEST、_SERVER、_SESSION、_COOKIE
{$_GET.name} 
{$_SERVER.REQUEST_URI|md5}

使用框架自定義的變量

復制代碼 代碼如下:

{:module}/{:controller}_{:action}//{:module} 、{:controller} 和{:action}分別表示當前模塊名、控制器名和操作名。

使用_GET變量

{var|function}//{id}其實等效于 {$_GET.id}

直接使用函數

{|function}//{|time},time函數獲取時間后作為文件名稱

混合定義

'{id},{name|md5}' //在{}之外的字符作為字符串對待,如果包含有"/",會自動創建目錄。
{:module}/{:action}_{id}//會在靜態目錄下面創建模塊名稱的子目錄,然后寫入操作名_id.shtml 文件。

動態緩存

[S方法數據緩存]

緩存初始化

S(array('type'=>'xcache','expire'=>60));

系統目前已經支持的緩存類型包括:Apachenote、Apc、Db、Eaccelerator、File、Memcache、Redis、Shmop、Sqlite、Wincache和Xcache。如果S方法不傳入type參數初始化的話,則讀取配置文件中設置的DATA_CACHE_TYPE參數值作為默認類型。同樣的道理,prefix參數如果沒有傳入會讀取配置文件的DATA_CACHE_PREFIX參數值,expire參數沒有傳入則讀取DATA_CACHE_TIME配置值作為默認。

對于全局的緩存方式,一般我們建議添加prefix(緩存前綴)參數用以區分不同的應用,以免混淆。

設置緩存

數據緩存可以支持緩存隊列,簡單的說就是可以限制緩存的數量,只需要在初始化的時候指定length參數。

S('name',$value);
S('name',$value,300);//緩存數據300秒
S('name',$value,array('type'=>'file','expire'=>300));//改變之前的緩存方式或者更多的參數
S(array('type'=>'xcache','length'=>100,'expire'=>60));//系統只會緩存最近的100條緩存數據。

讀取緩存

$value = S('name');//如果緩存標識不存在或者已經過期,則返回false,否則返回緩存值。

刪除緩存

S('name',null);

注意:使用每種緩存時,需要ThinkPHP加載對應的驅動文件,并設置好對應的配置。

使用實例

$user = M('User');
$value = S('list');
if (empty($value)) {
  $list = $user->select();
  S('list', $list, 3600);
  echo '這個是直接從數據庫中讀取的文件';
  dump($list);
} else {
  echo '這個是緩存文件';
  dump($value);
}

[快速緩存]

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

下面小編就為大家分享一篇ThinkPHP整合datatables實現服務端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇thinkphp3.2.0 setInc方法 源碼全面解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了tp5(thinkPHP5)操作mongoDB數據庫的方法,結合實例形式簡單分析了mongoDB數據庫及thinkPHP5連接、查詢MongoDB數據庫的基本操作技巧,需要的朋友可以參考下
thinkphp官網在去年的時候發布了tp的顛覆版本thinkphp5,tp5確實比之前的版本好用了很多,那么下面這篇文章就來給大家介紹關于在云虛擬主機部署thinkphp5項目的相關資料,需要的朋友可以
這篇文章主要介紹了Thinkphp5行為使用方法匯總,需要的朋友可以參考下
這篇文章主要介紹了thinkphp5 加載靜態資源路徑與常量的方法的相關資料,需要的朋友可以參考下
主站蜘蛛池模板: 亚洲一二三区精品 | www.久草.com | 黄色一级视频 | 国产精品久久久久久久午夜片 | 人人种亚洲 | 国产91在线 | 欧美 | www.日本在线 | 成人免费在线播放视频 | 欧美在线视频a | 久久精品视频一区二区三区 | a级片www | 97精品超碰一区二区三区 | 在线黄色影院 | 久久在线视频 | 免费爱爱视频 | 久久精品国产一区二区电影 | www.日韩系列 | 狠狠色狠狠色综合系列 | 国产成人99久久亚洲综合精品 | 国产激情在线 | 韩日一区 | 国产一区二区在线看 | 久久影音先锋 | 欧美一二三四成人免费视频 | 蜜桃黄网 | 91精品国产色综合久久不卡98 | 福利视频一区二区三区 | 国产精品99久久久久久久vr | a天堂在线| 成人性生交大片免费看r链接 | 一区二区免费在线观看 | 精精精精xxxx免费视频 | 性高湖久久久久久久久aaaaa | 日本91av视频 | 日韩欧美电影在线 | 在线视频三区 | 欧美xxxⅹ性欧美大片 | 国产日屁 | 国产精品高潮呻吟久久aⅴ码 | 色婷婷综合网 | 精品国产免费人成在线观看 |