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 相关文章推荐
用PHP制作静态网站的模板框架(二)
Oct 09 PHP
PHP脚本的10个技巧(5)
Oct 09 PHP
php下实现伪 url 的超简单方法[转]
Sep 24 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
PHP 程序员也要学会使用“异常”
Jun 16 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
关于php中一些字符串总结
May 05 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
TP3.2框架分页相关实现方法分析
Jun 03 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 has encountered a Stack overflow问题解决方法
2014/11/03 PHP
Yii rules常用规则示例
2016/03/15 PHP
jquery 滚动条事件简单实例
2013/07/12 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
js初始化验证实例详解
2016/11/26 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
python查询mysql中文乱码问题
2014/11/09 Python
python复制文件到指定目录的实例
2018/04/27 Python
python使用matplotlib库生成随机漫步图
2018/08/27 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
2014/03/30 面试题
体育专业自荐书
2014/05/29 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
建议书的格式及范文
2015/09/14 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
Java后台生成图片的完整步骤
2021/08/04 Java/Android
室外天线与收音机天线杆接合方法
2022/04/05 无线电