最小高速缓存生存时间与高速缓存页面过期之间的区别


35

在Drupal Performance Page上,在字段集Cache下,有两个选项。一个是最小高速缓存生存时间,另一个是高速缓存的页面过期。

在此处输入图片说明

两者之间有什么区别。


仔细看看“外部”一词;)
Mołot13年

1
我知道答案。我想写一些详细的答案,只是为了验证我的想法,希望对别人有帮助。
Gokul NK

Answers:


39

我花了几个小时后做了以下观察。如果有任何差距或错误,请告诉我。我会很高兴制作版本。

一位观察员认为,CACHING下的所有选项都不是相互依赖的。如果是它们,您将在不同的字段集(或从属字段)下看到它们。记下此观察结果,稍后我们将对其进行重新讨论。

在此处输入图片说明

让我们从第一个选项“ 为匿名用户缓存页面”开始。 在此处输入图片说明

当您选中此选项时,您基本上是在告诉Drupal

嘿,野兽听,当一个匿名用户访问我的网站时,

  1. 将生成的HTML存储在缓存表中
  2. 这样我可以向所有用户显示相同的结果,因为所有匿名用户的页面都保持相同。
  3. 并且除非我说清除所有缓存,否则不要清除页面缓存。

同样,即使您未启用该Cache Pages for anonymous users 页面,仍可以由外部缓存系统缓存该页面。例如:升压

现在,让我们转到通常会最终使用的下一个选项。

缓存的页面过期

在此处输入图片说明

  1. 请注意,此设置与Drupal数据库或缓存表无关。
  2. 阅读说明,The maximum time an external cache can use an old version of a page.因为Molot指出关键字是外部的。
  3. 因此,此选项的基本作用是将标头Cache Control设置为,并将标头中public的max-age值设置为指定值(在这种情况下为1天)。
  4. 此标头告诉external高速缓存系统在最大使用期限之前不要对该页面进行服务器调用,因为它们可以从自己的高速缓存中显示此页面。达到最大使用期限后,缓存系统应与Drupal服务器一起检查以查看内容是否已更改。

  5. 如果它是Varnish服务器,则不会调用Apache并从其缓存中返回页面。因此,假设Varnish缓存了一个页面,并且数千个不同的用户对该页面进行了请求。因此,这意味着已经处理了1000个请求,而没有一次访问Apache Server。

最小缓存寿命 在此处输入图片说明

如果您的网站流量不大,或者不确定该值是多少,最好将此值保留为none。

  1. 此值不仅适用于页面。但是所有的缓存对象。
  2. 该值说明“可以服务陈旧的缓存对象”
  3. 在我们的情况下,该值设置为5分钟。
  4. 如果您的页面上列出了主页上的五个最新博客。上述值的意思是,如果创建了一个新博客,则可以在五分钟内不在该列表中显示该博客。
  5. 设置此值时,要最少更新/重新创建缓存,必须经过很多时间,并且必须运行缓存清除操作[应运行缓存清除功能]。

1
感谢您的回答。不过,我有点困惑:对于“匿名用户的缓存页面”,您说的是“在我说清除所有缓存之前,请不要清除页面缓存”。这个“我说”代表什么?什么会触发清除缓存?
s427

1
@ s427,请检查drupal.stackexchange.com/questions/102976/…,以获取有关触发清除缓存的详细信息。
Gokul NK 2015年

1
我发现有趣的是,只有启用了“为匿名用户缓存页面”,这才是正确的。如果不是,则更改“缓存页面的过期时间”无效,而启用“最小缓存生存时间”则设置标题。仅当启用了对匿名用户的缓存并且仅然后“缓存的页面过期”才设置标题。这是一个有点混乱...
卢卡斯Zaroda

19

本文对Drupal的缓存术语有很好的概括:http : //www.phase2technology.com/blog/caching-in-drupal/

相关要点摘要:

最小高速缓存生存期通常被误解为“在经过这么长的时间后将重新生成页面”。实际上,这意味着直到至少经过了这么多时间并且发生缓存清除事件后,才会重新生成页面。

有时也会曲解缓存页面的过期。该值控制在Cache-Control标头中作为最大寿命值发送的值,从而建议代理服务器在不要求您的Drupal安装新副本的情况下可以为页面提供多长时间。这并不意味着该页面将在很多时间后重新生成,仅意味着代理服务器必须向Drupal进行检查,以查看在这段时间之后是否存在该页面的新版本。Drupal仅在发生缓存清除事件后才会重新生成页面。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.