溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Yii中數(shù)據(jù)庫(kù)緩存的示例分析

發(fā)布時(shí)間:2021-08-30 14:57:51 來(lái)源:億速云 閱讀:119 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下Yii中數(shù)據(jù)庫(kù)緩存的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下:

yii  操作數(shù)據(jù)庫(kù)緩存:

1、在main.php主文件中添加

'dbcache'=>array(
  'class'=>'system.caching.CDbCache',
  //數(shù)據(jù)庫(kù)緩存,注意你自己的路徑問(wèn)題
),

2、設(shè)置數(shù)據(jù)庫(kù)緩存

Yii::app()->cache->set($key,$value,$outtime);
//$key 唯一主鍵,$value 對(duì)應(yīng)主鍵的值(可以是數(shù)組), $outtime 過(guò)期時(shí)間。

3、獲取緩存

Yii::app()->cache->get($key);
//設(shè)置數(shù)據(jù)庫(kù)緩存時(shí)的主鍵key

4、刪除緩存

Yii::app()->cache->delete($key);//同上

5、清空緩存文件

Yii::app()->cache->fulsh();
//將刪除服務(wù)器上面的所有文件緩存,即cache文件夾里面的所有緩存文件

應(yīng)用實(shí)例:(好多視頻沒(méi)有給出在list列表頁(yè)如果做緩存,列表頁(yè)需要有page信息,稍微復(fù)雜一點(diǎn),下面給出一個(gè)list頁(yè)面的數(shù)據(jù)庫(kù)緩存實(shí)例)

當(dāng)前一個(gè)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)前變量沒(méi)有用$page而是使用的$pages,因?yàn)槿绻褂?page會(huì)出錯(cuò)誤,和分頁(yè)中的$page相沖突)

$newsListCache = Yii::app()->cache->get("newsList$gid$nid$pages");
//可以保證其唯一性即可
if(!empty($newsListCache))//判定如果有這個(gè)文件則走這個(gè)文件 下面return 了所以后面的數(shù)據(jù)就不會(huì)再走了
return $newsListCache;
。。。。。//這里就是你的其他代碼數(shù)據(jù),不用管它
Yii::app()->cache->set("newsList$gid$nid$pages",$newsList,3600);//這里的第一個(gè)參數(shù)需要和上面的對(duì)應(yīng),第二個(gè)參數(shù)就是你的數(shù)據(jù) , 第三個(gè)參數(shù)就是過(guò)期時(shí)間。

以上是“Yii中數(shù)據(jù)庫(kù)緩存的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI