Yii框架常见缓存应用实例小结

2025-05-27 0 14

本文实例讲述了Yii框架常见缓存应用。分享给大家供大家参考,具体如下:

1 首先,你需要安装apc or memcache or redis 。 安装完后。 以redis 为例。 至于如何安装,多找度娘。

在配置文件中components 添加如下。

?

1

2

3

4

5

6

7

8

9

10
'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.

?

1

2

3

4

5

6
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"); //缓存有效期内 会输出数据

sleep(4);

echo Yii::app()->cache->get("id"); //缓存失效,输出为空

3 数据库查询缓存

?

1

2

3

4

5

6

7

8

9
//3.1 最简单的数据库缓存。

$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();

上面的代码意思是查询对应的数据的时候,会先判断依赖查询 SELECT MAX(id) FROM plat2_settings 的结果数据是否有更新,

如果有更新,则重新查询数据,如依赖未更新则直接调缓存数据。 过1000 秒后,会重新查询。

4 片断缓存

?

1

2

3

4

5

6
if($this->beginCache("xx"))

{

echo "test cache ";

$this->endCache();

}

//beginCache 会存在第二个参数,意思是选用指定的缓存器。如果需要使用不同的缓存时,可以定制。

5 页面缓存

?

1

2

3

4

5

6

7

8

9
public function filters(){

return array(

array(

'COutputCache+index+admin',

'duration' => 120,

'varyByParam'=>array('id'),

),

);

}

使用控制器,直接对指定的action 进行缓存处理 。

还有varyBySession 可以选配。

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

原文链接:https://blog.csdn.net/mu_rain/article/details/47402877

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Yii框架常见缓存应用实例小结 https://www.kuaiidc.com/71501.html

相关文章

发表评论
暂无评论