我們網站在進行訪問的時候,有一些信息在相對一段時間之內是穩定,我們就把這樣的信息放入緩存里邊,這樣用戶每次來訪問就是訪問緩存的信息,對于大負載量的網站,可以明顯提高網站的性能。
YII本身緩存類型:
緩存分類:
片段緩存 一個頁面劃分為幾個區域,這幾個區域相對比較獨立,設計緩存的時候,可以為每個區域獨立開發制作緩存
頁面緩存 :對整個頁面進行緩存
動態緩存
數據緩存
使用片段緩存步奏:1. 在程序里邊設置緩存
<form name="compareForm" action="compare.php" method="post" onsubmit="return compareGoods(this);"> <div html' target='_blank'>class="clearfix goodsBox" style="border: medium none; padding: 11px 0pt 10px 5px;"> <!--片段緩存 實現--> <?php /*if($this->beginCache('緩存名稱')){ * duration 設置過期時間 * varyByParam 緩存變化 * dependency 緩存依賴 */ if($this->beginCache('goods',array( 'duration'=>3600, 'varyByParam' => array('page'), 'dependency' =>array( 'class'=>'system.caching.dependencies.CDbCacheDependency', 'sql'=>'select sum(goods_price) from {{goods}}', ) ))){ ?> <?php foreach($goods_infos as $_v){ ?> <div class="goodsItem"> <a href="./index.php?r=goods/detail&id=<?php echo $_v->goods_id ?>" target="_blank"><img src="<?php echo $_v->goods_big_img; ?>" alt="<?php echo $_v->goods_name ?>" class="goodsimg"></a><br /> <p><a href="#" title="諾基亞N85"><?php echo $_v->goods_name ?></a></p> <font class="market_s">¥<?php echo $_v->goods_price ?>元</font><br /> <font class="shop_s">¥<?php echo $_v->goods_price ?>元</font><br /> <a href="#"><img src="<?php echo IMG_URL; ?>goumai.gif"></a> <a href="#"><img src="<?php echo IMG_URL; ?>shoucang.gif"></a> </div> <?php } ?> <?php $this -> endCache();} ?> </div> </form>
2. 在主配置文件main.php里邊配置緩存組件cache(在這個地方決定使用哪種緩存) 我們的緩存是文件緩存,緩存的信息在目錄runtime存放
設置緩存文件的過期時間
Duration ()
我們為緩存文件設置過期時間,在沒有過期的時候系統都會使用緩存文件,如果已經過期,那么系統要重新生成緩存文件。
緩存變化:
我們的商品列表有實現片段緩存,那么在訪問其他其它頁碼信息的時候也是訪問這個緩存頁面,因為,每頁信息的路由都是一樣的(goods/category),那么系統會誤認為當前系統訪問的頁面是一個頁面。當時頁面的page參數是不一樣的。
因此我們需要根據參數的變化生成不同的緩存文件。
根據頁碼不同,生成不同緩存文件:
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答