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 相关文章推荐
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
php执行sql语句的写法
Mar 10 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
Windows7下的php环境配置教程
Feb 28 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 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
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
js option删除代码集合
2008/11/12 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
js文字横向滚动特效
2015/11/11 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
什么是测试驱动开发(TDD)
2012/02/15 面试题
2014年关于两会精神的心得体会
2014/03/17 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
电视节目策划方案
2014/05/16 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
成都人事代理协议书
2014/10/25 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android