让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手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
PHP的变量类型和作用域详解
Mar 12 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
php中的观察者模式简单实例
Jan 20 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP Static延迟静态绑定用法分析
Mar 16 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 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 Array交叉表实现代码
2010/08/05 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
jQuery使用手册之一
2007/03/24 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
python-opencv颜色提取分割方法
2018/12/08 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
python logging日志模块原理及操作解析
2019/10/12 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
酒店管理自荐信
2013/10/23 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
Python使用DFA算法过滤内容敏感词
2022/04/22 Python