让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函数
Oct 09 PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
php学习之 认清变量的作用范围
Jan 26 PHP
基于PHP开发中的安全防范知识详解
Jun 06 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
May 04 PHP
php通过Chianz.com获取IP地址与地区的方法
Jan 14 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
PHP socket 模拟POST 请求实例代码
Jul 18 PHP
如何使用PHP给图片加水印
Oct 12 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
php下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
php新建文件的方法实例
2019/09/26 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
通过实例了解js函数中参数的传递
2019/06/15 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Python正则表达式使用范例分享
2016/12/04 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
数据库连接池的工作原理
2012/09/26 面试题
建筑工程专业学生的自我评价
2013/12/25 职场文书
《草原》教学反思
2014/02/15 职场文书
太太口服液广告词
2014/03/20 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
毕业生见习报告总结
2014/11/08 职场文书
交警失职检讨书
2015/01/26 职场文书