问题是在检查缓存是否过期时如何有效地做到这一点?
你能用一些非常基本的演示来解释吗?
有很多不同的方法来缓存数据。您可以将它们存储在 ram、磁盘等中。我编写了自己的自定义解决方案,该解决方案使用 memcache/apc/filesystem 取决于我对任务的需要,因为我找不到满足我要求的解决方案。您可以看到一些使用PEAR_CacheLite和Zend_Cache进行缓存的示例。就像提到的 hobodave 一样,apc 确实有一种非常简单的方法,只需使用 ttl 将数据放入缓存中,但这可能并不实用,具体取决于您的应用程序。这些都有一些问题,所以买家要小心。
代码示例:检查缓存是否过期
DEFINE('time_to_live',60);
class MyCacheManager {
function load(key) {
if(filemtime(/data/cache/key.dat) > time_to_live) {
//expired!
}
}
}//CLASS
这取决于具体情况。
最好的方法是生成静态数据,并直接提供它,例如通过redirect in .htaccess
,所以php 无关。当您的数据发生更改时,缓存过期,例如当您添加新帖子时(然后您生成新的静态文件覆盖旧的)。
如果您需要在特定时间段内刷新缓存,您可能需要实现二级缓存模式。