让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之对抗Web扫描器的脚本技巧
Oct 01 PHP
PHP APC的安装与使用详解
Jun 13 PHP
php阻止页面后退的方法分享
Feb 17 PHP
php实现mysql事务处理的方法
Dec 25 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
php similar_text()函数的定义和用法
May 12 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
如何打开php的gd2库
Feb 09 PHP
PHP静态成员变量
Feb 14 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
Nov 03 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 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
深入了解php4(2)--重访过去
2006/10/09 PHP
php单件模式结合命令链模式使用说明
2008/09/07 PHP
php操作excel文件 基于phpexcel
2010/07/02 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
Yii框架form表单用法实例
2014/12/04 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
Python实现的堆排序算法示例
2018/04/29 Python
实习生自荐信范文
2013/11/13 职场文书
应届大学生求职的自我评价
2013/11/17 职场文书
学术会议邀请函范文
2014/01/22 职场文书
共产党员公开承诺书
2014/03/25 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
职代会闭幕词
2015/01/28 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
Python django中如何使用restful框架
2021/06/23 Python
Nginx速查手册及常见问题
2022/04/07 Servers
python数据处理之Pandas类型转换
2022/04/28 Python