让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函数,php爱好者站推荐
Mar 19 PHP
php记录日志的实现代码
Aug 08 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 PHP
PHP中的一些常用函数收集
May 26 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
May 12 PHP
Yii2框架dropDownList下拉菜单用法实例分析
Jul 18 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 24 PHP
详解PHP服务器如何在有限的资源里最大提升并发能力
May 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 Rename 更改文件、文件夹名称
2011/05/24 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
简明 Python 基础学习教程
2007/02/08 Python
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Python中title()方法的使用简介
2015/05/20 Python
python 的列表遍历删除实现代码
2020/04/12 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
itchat接口使用示例
2017/10/23 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
python3 使用traceback定位异常实例
2020/03/09 Python
Python进行统计建模
2020/08/10 Python
python 代码运行时间获取方式详解
2020/09/18 Python
python爬取招聘要求等信息实例
2020/11/20 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
财务经理岗位职责
2013/11/09 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
活动总结范文
2014/08/30 职场文书
群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
英语教师个人总结
2015/02/09 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android