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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
PHP新手上路(十)
Oct 09 PHP
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
PHP版 汉字转码的实现详解
Jun 09 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
php反射应用示例
Feb 25 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
php  单例模式详细介绍及实现源码
Nov 05 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
PHP实现链式操作的三种方法详解
Nov 16 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
改造一台复古桌面收音机
2021/03/02 无线电
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
2016/09/08 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
Python判断操作系统类型代码分享
2014/11/22 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
C语言面试题
2013/05/19 面试题
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
产品开发计划书
2014/04/27 职场文书
学习十八大的心得体会
2014/09/12 职场文书
会计实训报告范文
2014/11/04 职场文书
毕业实习证明范本
2015/06/16 职场文书
大学军训通讯稿
2015/07/18 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
pandas进行数据输入和输出的方法详解
2022/03/23 Python