时间:2021-05-25
本文实例讲述了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"); //缓存有效期内 会输出数据sleep(4);echo Yii::app()->cache->get("id"); //缓存失效,输出为空3 数据库查询缓存。
//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 片断缓存。
if($this->beginCache("xx")){ echo "test cache "; $this->endCache();}//beginCache 会存在第二个参数,意思是选用指定的缓存器。如果需要使用不同的缓存时,可以定制。5 页面缓存。
public function filters(){ return array( array( 'COutputCache+index+admin', 'duration' => 120, 'varyByParam'=>array('id'), ), );}使用控制器,直接对指定的action 进行缓存处理 。
还有varyBySession 可以选配。
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了YII框架页面缓存操作。分享给大家供大家参考,具体如下:IndexController.phpnamespacefrontend\controll
本文实例讲述了Yii框架应用(Applications)操作。分享给大家供大家参考,具体如下:应用主体¶应用主体是管理Yii应用系统整体结构和生命周期
本文实例讲述了Yii框架组件和事件行为管理。分享给大家供大家参考,具体如下:Yii是一个基于组件、用于开发大型Web应用的高性能PHP框架。CComponent
本文实例讲述了Yii框架使用Gii生成代码操作。分享给大家供大家参考,具体如下:开始GiiGii是Yii中的一个模块。可以通过配置应用的modules属性开启它
本文实例讲述了YIIFramework框架使用YIIC快速创建YII应用之migrate用法。分享给大家供大家参考,具体如下:yiimigrate查看帮助/*/