本文實例講述了Yii數(shù)據(jù)庫緩存用法。分享給大家供大家參考,具體如下:
yii 操作數(shù)據(jù)庫緩存:
1、在main.php主文件中添加
'dbcache'=>array(
'class'=>'system.caching.CDbCache',
//數(shù)據(jù)庫緩存,注意你自己的路徑問題
),
2、設(shè)置數(shù)據(jù)庫緩存
Yii::app()->cache->set($key,$value,$outtime);
//$key 唯一主鍵,$value 對應(yīng)主鍵的值(可以是數(shù)組), $outtime 過期時間。
3、獲取緩存
Yii::app()->cache->get($key);
//設(shè)置數(shù)據(jù)庫緩存時的主鍵key
4、刪除緩存
Yii::app()->cache->delete($key);//同上
5、清空緩存文件
Yii::app()->cache->fulsh();
//將刪除服務(wù)器上面的所有文件緩存,即cache文件夾里面的所有緩存文件
應(yīng)用實例:(好多視頻沒有給出在list列表頁如果做緩存,列表頁需要有page信息,稍微復(fù)雜一點,下面給出一個list頁面的數(shù)據(jù)庫緩存實例)
當(dāng)前一個url地址:http://www.aaaa.com/news/list/gid/2/nid/3/page/1.html
先判定緩存是否存在:
if(isset($_GET['gid'])){
$gid = intval($_GET['gid']);
}else{
$gid = 1;
}
..........
我這里省略掉了其他的判定條件,當(dāng)前僅需要判定的信息有$gid,$nid,$pages(注意,當(dāng)前變量沒有用$page而是使用的$pages,因為如果使用$page會出錯誤,和分頁中的$page相沖突)
$newsListCache = Yii::app()->cache->get("newsList$gid$nid$pages");
//可以保證其唯一性即可
if(!empty($newsListCache))//判定如果有這個文件則走這個文件 下面return 了所以后面的數(shù)據(jù)就不會再走了
return $newsListCache;
。。。。。//這里就是你的其他代碼數(shù)據(jù),不用管它
Yii::app()->cache->set("newsList$gid$nid$pages",$newsList,3600);//這里的第一個參數(shù)需要和上面的對應(yīng),第二個參數(shù)就是你的數(shù)據(jù) , 第三個參數(shù)就是過期時間。
希望本文所述對大家基于Yii框架的PHP程序設(shè)計有所幫助。