让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 14 PHP
php 操作符与控制结构
Mar 07 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
php使用类继承解决代码重复的问题
Feb 11 PHP
php中switch与ifelse的效率区别及适用情况分析
Feb 12 PHP
PHP中list()函数用法实例简析
Jan 08 PHP
php实现留言板功能
Mar 05 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
php测试kafka项目示例
Feb 06 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
Extjs中常用表单介绍与应用
2010/06/07 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
js date 格式化
2017/02/15 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
python批量生成本地ip地址的方法
2015/03/23 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python读取一个目录下所有txt里面的内容方法
2018/06/23 Python
Python语言快速上手学习方法
2018/12/14 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
打架检讨书800字
2014/01/10 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
怒海潜将观后感
2015/06/11 职场文书
世界文化遗产导游词
2019/08/07 职场文书
php引用传递
2021/04/01 PHP
Redis的字符串是如何实现的
2021/10/24 Redis