Magento中的“刷新缓存”是什么意思?

时间:2015-01-23 19:35:48

标签: php magento caching redis enterprise

以下是我在调查Magento中的缓存行为后发现的内容。

确定这一点并要求更正。

当像产品这样的东西被修改时,诸如“HTML Block”之类的缓存条目变为“无效”,导致被忽略而不在前端使用。这是有道理的,因为这些数据现在已经过时了。

在通过管理区域手动“刷新”之前,它仍然“无效”。

手动“刷新”后,缓存块的第一个渲染将构建其缓存副本,追加到此HTML块缓存保留。此块的后续渲染操作将发现此缓存可用,并最终使用它,直到缓存再次“无效”。

为什么这个过程被称为“刷新”,因为它应该像“重置”一样?因为“刷新”意味着它会生成更新的缓存快照,但它只是允许构建缓存条目。

为什么无效数据一旦失效就不会刷新?

这让我质疑我的结论,我是否正确?

2 个答案:

答案 0 :(得分:3)

  

为什么要调用此流程"刷新",因为它应该像" reset"

你对此的一般看法是正确的 - 有些人称之为"刷新"因为虽然您采取的操作会重置缓存,但在工作的Magento系统中,缓存几乎会在您(或其他用户)下次加载页面时立即重建。

  

为什么无效的数据一旦失效就会刷新?

当缓存无效时,这意味着开发人员处理任何后端功能,使缓存无效,知道他们的操作需要缓存刷新,但该编程缓存控制不足以刷新他们的部分已更改的缓存。

例如,某些块可能会改变产品的价格,这意味着需要刷新任何价格缓存的块。但是,作为后端程序员,无法知道哪些块需要该无效,也无法知道它们存储在哪个缓存系统(块缓存,FPC,清漆)中。还存在商店性能问题 - 如果您正在编辑100个产品,您是否希望Magento在高峰时段重建缓存100次?因此,开发人员不会决定如何处理所有这些,而是​​将缓存标记为无效。这允许缓存系统采取它认为必要的任何操作。

在一个完美的理论缓存系统中,会运行自动化流程来检测无效的缓存,并知道该做什么以及何时刷新它。这是一个复杂的系统来实现和维护,因此Magento选择简单地通知商店所有者无效的缓存,让他们采取他们认为合适的任何行动。

答案 1 :(得分:0)

默认情况下,默认情况下修改对用户重要的数据时,应发生Magento缓存刷新。例如。订单数据,运输信息等。

这是我在编写软件扩展时所观察到的行为。您可以手动禁用此行为,但默认情况下,动态数据应该是打孔"空洞"通过缓存。