成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么在ThinkPHP中實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存-創(chuàng)新互聯(lián)

怎么在ThinkPHP中實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

在邵東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷推廣,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),邵東網(wǎng)站建設(shè)費(fèi)用合理。

靜態(tài)緩存

要使用靜態(tài)緩存功能,需要開啟HTML_CACHE_ON參數(shù),并且使用HTML_CACHE_RULES配置參數(shù)設(shè)置靜態(tài)緩存規(guī)則文件。

定義靜態(tài)規(guī)則

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

靜態(tài)緩存文件的根目錄在HTML_PATH定義的路徑下面,并且只有定義了靜態(tài)規(guī)則的操作才會(huì)進(jìn)行靜態(tài)緩存。 并且靜態(tài)緩存支持不同的存儲(chǔ)類型。 靜態(tài)緩存僅在GET請(qǐng)求下面有效。


靜態(tài)地址

全局的操作靜態(tài)規(guī)則


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

定義全局的控制器靜態(tài)規(guī)則


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

定義某個(gè)控制器的操作的靜態(tài)規(guī)則//定義Blog控制器的read操作進(jìn)行靜態(tài)緩存


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

定義全局的靜態(tài)緩存規(guī)則


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

靜態(tài)規(guī)則

靜態(tài)規(guī)則是用于定義要生成的靜態(tài)文件的名稱,靜態(tài)規(guī)則的定義要確保不會(huì)沖突。


使用系統(tǒng)變量


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

使用框架自定義的變量


復(fù)制代碼 代碼如下:


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


使用_GET變量


{var|function}//{id}其實(shí)等效于 {$_GET.id}

直接使用函數(shù)


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

混合定義


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

動(dòng)態(tài)緩存

[S方法數(shù)據(jù)緩存]

緩存初始化


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

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


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

設(shè)置緩存


數(shù)據(jù)緩存可以支持緩存隊(duì)列,簡(jiǎn)單的說就是可以限制緩存的數(shù)量,只需要在初始化的時(shí)候指定length參數(shù)。


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

讀取緩存


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

刪除緩存


S('name',null);

注意:使用每種緩存時(shí),需要ThinkPHP加載對(duì)應(yīng)的驅(qū)動(dòng)文件,并設(shè)置好對(duì)應(yīng)的配置。

使用實(shí)例


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

[快速緩存]

系統(tǒng)還提供了一個(gè)快速緩存方法F可以用來(lái)更快的操作,但是,F(xiàn)方法沒有有效期,F(xiàn)方法可以支持不同的存儲(chǔ)類型,如果是文件類型的話,默認(rèn)保存在DATA_PATH目錄下面。


快速緩存Data數(shù)據(jù)


F('data',$Data);
F('data',$Data,TEMP_PATH);//快速緩存Data數(shù)據(jù),保存到指定的目錄
F('User/data',$Data);//F方法支持自動(dòng)創(chuàng)建緩存子目錄,在DATA_PATH目錄下面緩存data數(shù)據(jù),如果User子目錄不存在,則自動(dòng)創(chuàng)建。

獲取緩存數(shù)據(jù)


$Data = F('data');

刪除緩存數(shù)據(jù)


F('data',NULL);

[查詢緩存]

查詢緩存功能支持所有的數(shù)據(jù)庫(kù),并且支持所有的緩存方式和有效期。


在使用查詢緩存的時(shí)候,只需要調(diào)用Model類的cache方法。


$Model->cache(true)->where('status=1')->select();

如果使用了cache(true),則在查詢的同時(shí)會(huì)根據(jù)當(dāng)前的查詢條件等信息生成一個(gè)帶有標(biāo)識(shí)的查詢緩存,如果指定了key的話,則直接生成名稱為key的查詢緩存。


$Model->cache('cache_name')->select();

默認(rèn)情況下緩存方式采用DATA_CACHE_TYPE參數(shù)設(shè)置的緩存方式(系統(tǒng)默認(rèn)值為File表示采用文件方式緩存),緩存有效期是DATA_CACHE_TIME參數(shù)設(shè)置的時(shí)間,也可以單獨(dú)制定查詢緩存的緩存方式和有效期。


$Model->cache(true,60,'xcache')->select();

如果指定了查詢緩存的key的話,則可以在外部通過S方法直接獲取查詢緩存的內(nèi)容。


$value = S('cache_name');

除了select方法之外,查詢緩存還支持find和getField方法,以及他們的衍生方法(包括統(tǒng)計(jì)查詢和動(dòng)態(tài)查詢方法)。


$Model->where($map)->cache('key',60)->find();

看完上述內(nèi)容,你們掌握怎么在ThinkPHP中實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

當(dāng)前文章:怎么在ThinkPHP中實(shí)現(xiàn)靜態(tài)緩存和動(dòng)態(tài)緩存-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article8/dhopop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站收錄、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、外貿(mào)網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
科技| 阿拉尔市| 平谷区| 古交市| 上饶县| 清新县| 如皋市| 宁德市| 南丹县| 云南省| 云南省| 旺苍县| 阳江市| 西乌珠穆沁旗| 富平县| 台北市| 泸西县| 广东省| 黄浦区| 西贡区| 名山县| 壤塘县| 娱乐| 利川市| 和政县| 东海县| 临桂县| 新河县| 宜兴市| 兰考县| 剑阁县| 陕西省| 阿拉善左旗| 白玉县| 晴隆县| 开远市| 张家川| 晋州市| 巴彦淖尔市| 廉江市| 莱西市|