2010-07-05 44 views
6

我读此链接: -CodeIgniter输出缓存如何工作?

http://codeigniter.com/user_guide/general/caching.html

这是写的是: -

When a page is loaded for the first time, the cache file will be written to your system/cache folder

,而且我们能够通过缓存一个$this->output->cache(60);视图。但它是如何工作的?如果我的用户经常定期更新和删除记录,那么该怎么办呢?它会显示修改后的数据吗?或者缓存是否会恢复陈旧的数据? (在插入和更新之前)?如果它自动管理并从数据库中提取新数据,那么在cache函数中指定分钟的目的是什么?

感谢提前:)

回答

14

方式CodeIgniter的缓存通常工作不使用缓存是这样的:

一个页面请求。 Codeigniter(在甚至已经加载了框架之前)会对当前url进行哈希处理,如果它在缓存目录中找到该文件名,它就会提供该服务。

获取新数据的唯一方法是手动删除文件。当codeigniter从它生成的散列中找不到文件时,它会动态地创建页面。

Codeigniter的实现被称为“整页”缓存,因此它的有用性受到限制。我从Phil Sturgeon那里看到了部分缓存库:http://philsturgeon.co.uk/code/codeigniter-cache

说实话,对于大多数项目来说,整页缓存并不是那么有用。事实上,我需要完整页面缓存的项目我甚至没有把它留给codeigniter(我把它留给网络服务器:它的速度更快)。

我猜你在找什么是部分缓存方法;大多数人会喜欢这个。如果您使用的是单台服务器,请查看APC,如果您有多台服务器,请查看Memcached。

祝你好运。

7

但它是如何实际工作?

如果存在比缓存时间更新的缓存版本,则会输出该缓存版本。

它会显示修改后的数据吗?

最终肯定的,但随着$ cache_time的

滞后如果经常我的用户不断更新和删除记录的结果是经常查看变化。

减少缓存时间或根本

+9

没有评论的投票是厌恶的行为 – Pete 2010-07-05 19:21:36