标准缓存选项之间的区别


12

Joomla!有3种不同的缓存方式:

  • “保守缓存”(在全局配置中)
  • “渐进式缓存”(在全局配置中)
  • 插件“系统-缓存”

我有以下问题:

  • 有什么区别?
  • 什么时候使用哪个选项?
  • 在配置中打开选项后,是否应该启用缓存插件?
  • 有什么适当的方法来配置默认缓存系统?

Answers:


5

除了Shyam的答案...

Global Configuration-> Cache...

  • 保守缓存是为组件/模块的每个视图生成的缓存
  • 渐进式缓存是基于每个用户为组件/模块的每个视图生成的缓存。

这是视图的扩展级缓存。它必须由扩展开发人员实施才能生效。

注意:已登录的用户将永远不会通过这些方式看到缓存的内容。

如果通过在模块的高级选项中禁用缓存,则可以覆盖单个模块的缓存。如果设置了“渐进式缓存”,则不能按模块覆盖模块缓存。

系统-缓存插件生成每个整个页面的页面缓存/cache

对于大多数情况,启用系统-缓存插件就足够了。如果只想缓存特定的模块/组件(已实现缓存),请禁用插件并在全局配置中启用保守性缓存。然后,可以通过在模块的高级选项中禁用缓存来设置例外。

请注意,任何缓存都是时间和空间之间的平衡-全页缓存将减少数据库负载,从而减少页面加载时间,但会增加磁盘空间使用量。

你可以找到进一步的分析和缓存系统的基准在这里,还有的Joomla缓存文档针对管理员和这个优秀的文章详细介绍了各种选项和适用的注意事项。


但是我使用渐进式缓存,它尊重模块缓存设置,因此我认为您应该尝试这样做并更正答案。
jackJoe 2014年

你确定吗?我查看过的每个网站都Progressive caching将覆盖所有模块级别的设置(尤其是inmotionhosting.com/support/edu/joomla-25/caching/…上“原始结果”下的第三张表)。我今天将尝试在全新安装上对此进行测试,以验证其中一种方法。
codinghands

1
关于:“保守缓存加上启用系统-缓存插件就足够了”-这是否具有真正意义?因为正如您所解释的:该插件会缓存整个页面,所以(据我所知)在这种情况下是Joomla!不要运行扩展,所以保守的缓存..或者我明白错了吗?
Fedik

1
我只是尝试了一下,在某些情况下它可以工作,而在其他情况下却不行!如果您将模块包含在文章中(例如,按其位置),则它遵循无缓存设置,但在正常模块位置中,它将忽略它!我发誓它适用于普通模块,但是我只是再次尝试了,但没有成功。
jackJoe 2014年

@Fedik你说得对,我的误解。现在更新了我的答案。
codinghands

3
  1. 缓存之间的区别-

    保守缓存是标准的缓存类型。运作方式如下:

    访客访问您网站上的页面。

    • Joomla检查其缓存目录中是否存在该页面的未过期版本。
    • 如果缓存的页面存在(并且尚未过期),则Joomla将其提供给访问者
    • 否则,将创建页面的缓存版本,并且该缓存版本将被提供给访问者以及所有随后的访问者,只要它(按“它”表示页面)没有过期即可。

    上面的场景很典型,这是大多数开发人员实现缓存的方式。

    渐进式缓存按以下方式工作:

    • 访客访问您网站上的页面。
    • Joomla检查该访问者是否存在该页面的缓存版本,并且尚未过期。
    • 如果该缓存页面存在,则将其提供给访问者,否则,Joomla将为该特定访问者创建缓存页面,然后将其提供给他。
    • 如果另一个访问者(从未访问过该页面的访问者)访问该页面,则Joomla将不会投放前一个访问者的缓存页面,而是会为该用户创建该页面的缓存版本,然后将其投放到他。

    如您所见,渐进式缓存只会提高性能

    • 如果同一访客在页面的缓存版本的生存期内访问同一页面。
    • 在大多数情况下,渐进式缓存会导致巨大的性能下降,这比禁用缓存要严重得多,这仅仅是因为对于几乎每次访问,Joomla都必须处理请求,创建页面的缓存版本,然后将页面提供给访问者(而不是仅在禁用缓存的情况下处理请求并提供页面)。
    • 哦,别忘了Joomla生成的所有缓存文件–您只能想象如果您的网站新闻流量很大(页面很多),那么在缓存文件夹中将有多少个这些文件。

    现在您可能想知道,在什么情况下渐进式缓存有用吗?好吧,假设您有一个视频网站(类似于youtube)。您要根据访问者的位置和/或浏览器设置和/或安装的插件显示他们的自定义页面。因此,对于访问者加载的每个页面,您都可以使用此信息生成该页面的自定义版本并进行缓存。如果访问者再次访问同一页面,则Joomla无需重做工作即可生成自定义页面。

    当然,在许多情况下,渐进式缓存确实有用,但是在我们看来,仅当网站接收到很多访问者并且这些访问者大多是重复访问者时,才应考虑使用渐进式缓存。在其他情况下使用它会严重影响网站的性能。参考:深入了解Joomla缓存

  2. 推荐保守。

  3. 启用时,缓存插件可提供完整的页面缓存。

3
您可以编辑此答案,以便将预格式化的块改为blockquotes吗?另外,请注意此信息的原始来源(itoctopus.com/…,并在stackoverflow.com/questions/12739297/…中引用)。此外,即使本文中仅针对非常特定的用例提到了这一点,也建议您采用渐进式缓存。
codinghands

不是很清楚,您说的是:保守/渐进式“检查该页面的缓存版本是否存在”,以及有关插件“缓存插件提供完整的页面缓存” ..所以所有这些选项和插件都对整个页面输出进行缓存吗?
Fedik

好,我看到另一个答案了;)
Fedik 2014年

更新的答案#2更改为保守。
Shyam
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.