yii2支持的数据库(Yii框架常见缓存应用实例小结)
类别:编程学习 浏览量:241
时间:2021-10-22 07:16:54 yii2支持的数据库
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" ); //缓存有效期内 会输出数据 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框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/mu_rain/article/details/47402877
您可能感兴趣
- dedecms怎样查看网页源文件(dedecms批量更新静态时提示:没有该栏目数据 可能缓存的解决方法)
- thinkphp3.2.3 接口开发(ThinkPHP3.2.3框架Memcache缓存使用方法实例总结)
- nginx对静态文件开启缓存(nginx proxy_cache 缓存配置详解)
- vue手动清除keepalive缓存(vue中keep-alive组件的用法示例)
- php缓存技术学习(简单实用的PHP文本缓存类实例)
- iis7.5缓存设置
- python中内存管理机制(Python中整数的缓存机制讲解)
- mysql的存储性能优化(MySQL的查询缓存和Buffer Pool)
- laravel数据库数据代码(在Laravel的Model层做数据缓存的实现)
- memcache安装与调优部署文件(Memcached构建缓存服务器的方法)
- sql server性能调优(SQL Server性能调优之缓存)
- mysql缓存和redis查询效率(浅谈MySQL与redis缓存的同步方案)
- html5 设置缓存(HTML5实现应用程序缓存Application Cache)
- HTML5离线缓存
- laravel命令大全详解(Laravel框架中缓存的使用方法分析)
- jquery使用data缓存数据
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
- 一部手机两套系统 OPPO Find X3的正确打开方式你知道吗(一部手机两套系统)
- OPPO用户看过来 汇总几个春节实用技巧,轻松搞定多设备联动玩法(汇总几个春节实用技巧)
- 北京旅游攻略(北京旅游攻略5日游及其花费)
- 四川旅游攻略(四川旅游攻略自由行攻略)
- 上海迪士尼攻略(上海迪士尼攻略旅游)
热门推荐
- 使用vue组件开发项目(Vue记事本实例详解)
- 数据库知识点总结归纳(数据库日常练习题,每天进步一点点1)
- php符串使用教程(php使用scandir函数扫描指定目录下所有文件示例)
- mysql模糊匹配语句(MySQL 数据库 like 语句通配符模糊查询小结)
- mysql存储过程和函数(MySQL存储过程的查询命令介绍)
- lnmp怎么连接服务器(LNMP系列教程之 解决sendmail不能发送邮件问题)
- JavaScript中==和===的区别
- docker怎么连接mysql(docker如何安装mysql)
- 怎么修改dede标签内容(用数据库批量修改替换dedecms文章标题和内容的步骤分享[图文])
- python如何使用multiprocess(Python multiprocessing多进程原理与应用示例)