让CodeIgniter数据库缓存自动过期的处理的方法
2023-06-13 09:15:28 时间
CodeIgniter框架是一个非常小巧的PHP框架。CI自带数据库文件缓存,但按官方的说法,缓存设置后永不过期,除非你调用方法主动删除。
CachefilesDONOTexpire.Anyqueriesthathavebeencachedwillremaincacheduntilyoudeletethem.
感觉太弱智了,非常不方便。修改一下db类,在开启缓存时设置一个过期时间,到期自动缓存自动失效。
1:CIdatabase/DB_dirver.php中1021行cache_on函数替换为
复制代码代码如下:
CachefilesDONOTexpire.Anyqueriesthathavebeencachedwillremaincacheduntilyoudeletethem.
感觉太弱智了,非常不方便。修改一下db类,在开启缓存时设置一个过期时间,到期自动缓存自动失效。
1:CIdatabase/DB_dirver.php中1021行cache_on函数替换为
{
$this->cache_expire_time=$expire_time;//addbykenvin
$this->cache_on=TRUE;
returnTRUE;
}
2:CIdatabase/DB_cache.php中90行read函数if(FALSE===($cachedata=read_file($filepath)))一行前面加上
if(!file_exists($filepath)){
returnfalse;
}
if($this->db->cache_expire_time>0&&filemtime($filepath)db->cache_expire_time){
returnfalse;
}
这样,在需要开启缓存的地方,由以前的$this→db→cache_on();改为
$SEC为缓存过期时间,以秒为单位。如$this→db→cache_on(60);表示缓存60秒后过期。
相关文章
- 【数据库】报错ora 12154 解决方法[通俗易懂]
- 内连接与外连接的区别是什么?_数据库外连接和内连接的区别
- MySQL数据库基础学习(二十八)
- Golang 项目启动时维护数据库变更
- 【错误记录】使用 Jedis 操作 Redis 数据库报错 ( SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“. )
- Java操作MongoDB数据库方法详解
- Centos7安装和卸载Mongodb数据库的方法
- redis缓存数据库中数据的方法
- SQL Server跨服务器操作数据库的图文方法(LinkedServer)
- Oracle删除当前用户下所有的表的方法详解数据库
- 删除weblogic应用缓存,weblogic 缓存的删除方法详解数据库
- 确保Linux服务器数据安全:如何正确备份数据库(linux服务器数据库备份)
- 架设Oracle数据库,实现Web化管理(oracleweb地址)
- 关闭MongoDB数据库连接:安全的停止方法(mongodb关闭连接)
- 解决Oracle数据库错误的方法(Oracle排错)
- Oracle数据库触发器类型简介(oracle触发器类型)
- 查看Oracle数据库索引:一个简单指南(oracle索引怎么查看)
- MySQL 数据库查看方法:详解浏览数据库的步骤(mysql怎么浏览数据库)
- 备份MySQL 数据库快速打包备份(mysql打包)
- MySQL中列出所有数据库的方法(mysql列出数据库)
- Oracle与用友:打造强大的数据库服务(oracle和用友)
- 化查询妙用Oracle数据库格式化查询技巧(oracle数据库的格式)
- SQL Server中逻辑型数据库的学习与研究(sqlserver逻辑型)
- 使用Node.js链接/操作MS SQL数据库(node mssql使用)
- MySQL数据库详尽指南(mysql大全)
- 解决MySQL数据库中1452错误的方法(mysql中1452错误)
- Oracle 数据库中查找空值的方法(oracle中如何查空值)
- Oracle数据库超大规模查询极致实现(oracle上亿级查询)
- Jdbc连Sybase数据库的几种方法
- 用ADODB来让PHP操作ACCESS数据库的方法
- access数据库自启动困难解决方法
- mssql数据库游标批量修改符合条件记录的方法