让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 相关文章推荐
Joomla下利用configuration.php存储简单数据
May 19 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
php获取随机数组列表的方法
Nov 13 PHP
php中magic_quotes_gpc对unserialize的影响分析
Dec 16 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
May 29 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
May 06 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
Oct 24 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
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
详解python的ORM中Pony用法
2018/02/09 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
Python 线程池用法简单示例
2019/10/02 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
Python包和模块的分发详细介绍
2020/06/19 Python
Python Django路径配置实现过程解析
2020/11/05 Python
技校个人求职信范文
2014/01/25 职场文书
公司2015年终工作总结
2015/05/26 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
python中%格式表达式实例用法
2021/06/18 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫