让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 Cookie的使用教程详解
Jun 03 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
浅谈php优化需要注意的地方
Nov 27 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
php-redis中的sort排序函数总结
Jul 08 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
PHP类型约束用法示例
Sep 28 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
tp5修改(实现即点即改)
Oct 18 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
调频问题解答
2021/03/01 无线电
PHP循环结构实例讲解
2014/02/10 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
巧用replace将文字表情替换为图片
2014/04/17 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
python执行精确的小数计算方法
2019/01/21 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
python路径的写法及目录的获取方式
2019/12/26 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
关于Java String的一道面试题
2013/09/29 面试题
新闻发布会新闻稿
2015/07/17 职场文书
辅导员学期工作总结
2015/08/14 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
创业计划书之餐饮
2019/09/02 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android
Vue router配置与使用分析讲解
2022/12/24 Vue.js