系统/缓存文件夹codeigniter中的缓存文件过多

时间:2019-02-25 05:39:54

标签: php codeigniter caching

我有一个在CodeIgniter上开发的音乐网站,该音乐网站使用的是 youtube API ,没有数据库。最近,我注意到system/cache文件夹中生成了太多文件。
如何停止生成此缓存文件?请注意,我没有使用任何缓存方法。

2 个答案:

答案 0 :(得分:1)

首先,

system / cache不是默认的codeigniter缓存目录。我不会将缓存存储在那里,作为其框架主文件夹。默认值为应用程序/缓存。

默认情况下,CI不缓存任何内容。因此,您的应用程序是使用缓存构建的。 您告诉过您不使用数据库,所以我认为它不是数据库缓存。

在您的应用中签入“ $ this-> load-> driver('cache'”)。 可以加载缓存而无需其他参数,例如 $ this-> load-> driver('cache');或者带有类似的参数 $ this-> load-> driver('cache',array('adapther'=>'xxx'));

https://www.codeigniter.com/userguide3/libraries/caching.html

现在,在您的应用程序中搜索$ this-> cache-> save或$ this-> cache-> file-> save 如果找到了,则表示您正在使用CI缓存。

问题是,当应用程序启动缓存对象时,您不能仅仅删除缓存加载,否则应用程序将失败,除非您重写所有使用缓存的位置。

现在,您别无选择:

1.just通过cron定期使用一些脚本清理缓存目录。

  1. 您可以将缓存文件夹权限更改为NON writable,这将在日志中生成警告,因此应禁用日志记录。这不是恕我直言的正确方法,因为它可能导致致命错误/空白页,而只是可能的解决方案之一。如果使用文件缓存,这应该不会引起问题,而在其他情况下却可以。

  2. 您可以扩展缓存库,并只需创建空的缓存SAVE函数。在这种情况下,您的文件将不会保存。

  3. 如果服务器上有它,则可以缓存到memcached。好吧,如果您的缓存写成$ this-> cache-> file-> {operation},那么您需要将所有内容更新为$ this-> cache-> memcached-> {operation}。如果缓存的编写方式类似于$ this-> cache-> {operation},则可以调整配置,例如

$ this-> load-> driver('cache',array('adapther'=>'memcached'));

并在配置文件中设置memcached服务器信息。 (config / memcached.php)

您告诉您没有使用任何缓存方法。因此,您应该找不到我上面写的任何代码。

我能想到的最后一件事是

$ this-> output-> cache(xxx); 其中xxx是缓存时间(以分钟为单位)。 它强制整个生成的页面被缓存; 如果找到这样的行,可以尝试将其注释掉,看看会发生什么情况

https://www.codeigniter.com/user_guide/general/caching.html

有一个很好的注释:如果更改可能影响输出的配置选项,则必须手动删除缓存文件。

如果在以上示例中找不到任何内容,则可以使用一些自定义生成缓存。

祝你好运!

答案 1 :(得分:0)

将其放在您的通用控制器中

$ this-> output-> delete_cache();