让CodeIgniter数据库缓存自动过期的处理的方法


Posted in PHP onJune 12, 2014

CodeIgniter框架是一个非常小巧的PHP框架。CI自带数据库文件缓存,但按官方的说法,缓存设置后永不过期,除非你调用方法主动删除。

Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them.

感觉太弱智了,非常不方便。 修改一下db类,在开启缓存时设置一个过期时间,到期自动缓存自动失效。

1:CI database/DB_dirver.php 中 1021行 cache_on 函数替换为

function cache_on($expire_time=0) //add parm expire time - 缓存过期时间
{
$this->cache_expire_time = $expire_time; //add by kenvin
$this->cache_on = TRUE;
return TRUE;
}

2:CI database/DB_cache.php 中 90行 read 函数 if (FALSE === ($cachedata = read_file($filepath))) 一行前面加上

//判断是否过期 // cache_expire_time
if ( !file_exists($filepath) ) {
return false;
}
if ( $this->db->cache_expire_time > 0 && filemtime($filepath) db->cache_expire_time) {
return false;
}

这样,在需要开启缓存的地方,由以前的 $this→db→cache_on(); 改为

$this→db→cache_on($SEC);

$SEC 为缓存过期时间,以秒为单位。 如 $this→db→cache_on(60);表示缓存60秒后过期。
PHP 相关文章推荐
如何写php程序?
Dec 08 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
PHP测试程序运行时间的类
Feb 05 PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 #PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 #PHP
对PHP语言认识上需要避免的10大误区
Jun 12 #PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
Jun 12 #PHP
PHP微框架Dispatch简介
Jun 12 #PHP
You might like
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
详解php的socket通信
2015/08/11 PHP
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
浅谈python数据类型及类型转换
2017/12/18 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
预备党员思想汇报范文
2014/01/11 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
清洁工岗位职责
2015/02/13 职场文书
教师求职信怎么写
2015/03/20 职场文书
社会实践心得体会范文
2016/01/14 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript
以下牛机,你有几个
2022/04/05 无线电
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL