Yii框架常見緩存應用實例小結
本文實例講述了Yii框架常見緩存應用。分享給大家供大家參考,具體如下:
1 首先,你需要安裝apc or memcache or redis 。 安裝完后。 以redis 為例。 至于如何安裝,多找度娘。
在配置文件中components 添加如下。
'cache'=>array(
'class'=>'core.extensions.redis.Predis',
'class'=>'core.extensions.redis.CRedisCache',
'servers'=>array(
array(
'host'=>'192.168.1.xx',
'port'=>6379,
),
),
),
2 最簡單的例子。 set get.
Yii::app()->cache->set('id', date("Y-m-d H:i:s"), 5); //設置有效時間為5.
echo Yii::app()->cache->get("id")."<br/>";
sleep(2);
echo Yii::app()->cache->get("id"); //緩存有效期內(nèi) 會輸出數(shù)據(jù)
sleep(4);
echo Yii::app()->cache->get("id"); //緩存失效,輸出為空
3 數(shù)據(jù)庫查詢緩存。
//3.1 最簡單的數(shù)據(jù)庫緩存。
$sql = 'select * from {{settings}}';
$cmd = Yii::app()->db->cache(10, null)->createCommand($sql);
$rows = $cmd->queryAll();
//3.2 加一個緩存依賴的概念。
$dp_sql = "SELECT MAX(id) FROM plat2_settings ";
$dependency = new CDbCacheDependency( $dp_sql );
$sql = "SELECT * FROM `plat2_settings`";
$rows = Yii::app()->db->cache(1000, $dependency)->createCommand($sql)->queryAll();
上面的代碼意思是查詢對應的數(shù)據(jù)的時候,會先判斷依賴查詢 SELECT MAX(id) FROM plat2_settings 的結果數(shù)據(jù)是否有更新,
如果有更新,則重新查詢數(shù)據(jù),如依賴未更新則直接調(diào)緩存數(shù)據(jù)。 過1000 秒后,會重新查詢。
4 片斷緩存。
if($this->beginCache("xx"))
{
echo "test cache ";
$this->endCache();
}
//beginCache 會存在第二個參數(shù),意思是選用指定的緩存器。如果需要使用不同的緩存時,可以定制。
5 頁面緩存。
public function filters(){
return array(
array(
'COutputCache+index+admin',
'duration' => 120,
'varyByParam'=>array('id'),
),
);
}
使用控制器,直接對指定的action 進行緩存處理 。
還有varyBySession 可以選配。
更多關于Yii相關內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優(yōu)秀開發(fā)框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。
相關文章
PHP簡單實現(xiàn)HTTP和HTTPS跨域共享session解決辦法
這篇文章主要介紹了PHP簡單實現(xiàn)HTTP和HTTPS跨域共享session解決辦法,本文講解的方法相對簡單,需要的朋友可以參考下2015-05-05
PHP yii實現(xiàn)model添加默認值的方法(兩種方法)
這篇文章主要介紹了PHP yii實現(xiàn)model添加默認值的方法的相關資料,這里有兩種方法,和具體實現(xiàn)方法,需要的朋友可以參考下2016-11-11
php 二維數(shù)組快速排序算法的實現(xiàn)代碼
這篇文章主要介紹了php 二維數(shù)組快速排序算法的實現(xiàn)代碼的相關資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
php獲取字符串前幾位的實例(substr返回字符串的子串用法)
下面小編就為大家?guī)硪黄猵hp獲取字符串前幾位的實例(substr返回字符串的子串用法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
PHP isset()與empty()的使用區(qū)別詳解
本文主要介紹了PHP isset()與empty()的使用區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02

