我从来没有费心去看我的项目的缓存,因为它们通常很小,最多只有一百个用户,并且数据总是在变化。
然后,我考虑尝试使用Symfony,它警告我使用check_configuration.php脚本禁用了APC。
我去检查什么是APC,并看到它的主要用途是操作码缓存,这很好,但它也有用户数据缓存,我不确定是什么我想要的任何变化数据库应该被看到,它们每隔几分钟发生一次。
任何人都可以解释如何禁用此用户数据缓存,或者当数据总是在变化时APC是否有用?
答案 0 :(得分:1)
除非您强制使用,否则APC不会缓存任何用户数据。如果APC缓存并提供过时的用户数据,那是因为您已经设计了应用程序来执行此操作。在操作码缓存之外,它只是一个与memcache相当的键值存储 - 它只缓存你明确放入它的内容。
如果symfony有页面缓存行为,则需要在symfony中禁用它,而不是APC。
答案 1 :(得分:0)
我不使用APC,而是使用EAccelerator,但概念是相同的。
操作码缓存通常很好。
如果您的应用程序不是RESTful,则内容缓存很棘手。您需要在命名空间和输出之间建立一致的关系,以使缓存变得有意义。
例如,如果您在网址http://example.com/rss.php上有RSS Feed且内容经常更改而网址没有变化,则缓存比使用http://example.com/rss.php?time=XXXXXXXXXXUTC
要复杂得多如果您只想阻止对使用大量资源和更改的URL的DOS攻击,您可以为内容缓存设置超时,并接受它或多或少是最新的。