Yii数据库缓存实例分析


Posted in PHP onMarch 29, 2016

本文实例讲述了Yii数据库缓存用法。分享给大家供大家参考,具体如下:

yii  操作数据库缓存:

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

'dbcache'=>array(
  'class'=>'system.caching.CDbCache',
  //数据库缓存,注意你自己的路径问题
),

2、设置数据库缓存

Yii::app()->cache->set($key,$value,$outtime);
//$key 唯一主键,$value 对应主键的值(可以是数组), $outtime 过期时间。

3、获取缓存

Yii::app()->cache->get($key);
//设置数据库缓存时的主键key

4、删除缓存

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

5、清空缓存文件

Yii::app()->cache->fulsh();
//将删除服务器上面的所有文件缓存,即cache文件夹里面的所有缓存文件

应用实例:(好多视频没有给出在list列表页如果做缓存,列表页需要有page信息,稍微复杂一点,下面给出一个list页面的数据库缓存实例)

当前一个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;
}
..........

我这里省略掉了其他的判定条件,当前仅需要判定的信息有$gid,$nid,$pages(注意,当前变量没有用$page而是使用的$pages,因为如果使用$page会出错误,和分页中的$page相冲突)

$newsListCache = Yii::app()->cache->get("newsList$gid$nid$pages");
//可以保证其唯一性即可
if(!empty($newsListCache))//判定如果有这个文件则走这个文件 下面return 了所以后面的数据就不会再走了
return $newsListCache;
。。。。。//这里就是你的其他代码数据,不用管它
Yii::app()->cache->set("newsList$gid$nid$pages",$newsList,3600);//这里的第一个参数需要和上面的对应,第二个参数就是你的数据 , 第三个参数就是过期时间。

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

PHP 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
怎样在UNIX系统下安装php3
Oct 09 PHP
PHP Mysql编程之高级技巧
Aug 27 PHP
mysql limit查询优化分析
Nov 12 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
Feb 26 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
Mar 28 #PHP
Yii框架上传图片用法总结
Mar 28 #PHP
Yii开启片段缓存的方法
Mar 28 #PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 #PHP
CI映射(加载)数据到view层的方法
Mar 28 #PHP
CI配置多数据库访问的方法
Mar 28 #PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 #PHP
You might like
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
PDO::errorCode讲解
2019/01/28 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python一键升级所有pip package的方法
2017/01/16 Python
python保存文件方法小结
2018/07/27 Python
Django 多环境配置详解
2019/05/14 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
学生宿舍管理制度
2014/01/30 职场文书
法院信息化建设方案
2014/05/21 职场文书
全国文明单位申报材料
2014/05/31 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL