Magento 2:缓存清理和缓存刷新之间有何区别?


22

在Magento 2中,我们有2个命令

php bin/magento cache:flush
php bin/magento cache:clean

它们之间的确切区别是什么?我通常在使用cache:flush。我没用过cache:clean。那么,什么时候使用哪种命令?

Answers:


29

要从缓存中清除过期的项目,可以清除刷新缓存类型:

  • 清除缓存类型只会删除已启用的Magento缓存类型中的所有项目。换句话说,此选项不会影响其他进程或应用程序,因为它仅清除Magento使用的缓存。

    不清除禁用的缓存类型。

  • 刷新缓存类型将清除缓存存储,这可能会影响使用同一存储的其他进程应用程序。

如果您已经尝试清理缓存,但仍然遇到无法隔离的问题,请刷新缓存类型。

来源: https : //devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-cache.html#config-cli-subcommands-cache-clean


1
我能知道哪些其他进程应用程序将使用Magento缓存存储。
Jaya chandra

您可以通过为后端缓存配置Redis,为会话缓存配置Memcached以及将Varnish配置为全页缓存来配置Magento的性能(这在Ray Bogman的Magento 2 Cook Book中有详细说明)。如果您有一个Redis或运行并配置了多个Magento或任何其他应用程序的任何其他服务器,则可以使用其他应用程序。运行Flush将删除所有目录+文件,但是运行clean将仅删除\ Magento \ var \ cache目录中的文件。
Bala Varadarajan

11

php bin / magento缓存:干净

清除缓存类型只会删除已启用的Magento缓存类型中的所有项目。换句话说,此选项不会影响其他进程或应用程序,因为它仅清除Magento使用的缓存。

不清除禁用的缓存类型。

php bin / magento缓存:刷新

刷新缓存类型将清除缓存存储,这可能会影响使用同一存储的其他进程应用程序。

参考:DevDocs管理缓存


谢谢@拉斐尔。那么哪个是最好的以及何时使用?
Ankit Shah

视情况而定,但我更喜欢cache:clear
RafaelCorrêaGomes

我已经尝试在var / cache上创建一个空文件,但是正如您提到的,这些命令都没有将其删除。但是还是谢谢你。
里卡多·马丁斯

@RicardoMartins那是因为你需要创建一个像变种文件/缓存/法师-测试-马丁内斯
拉斐尔·科雷亚·戈麦斯

该答案与所选答案相反。如果我是对的
Patrick van Efferen

2

Fabrizio Branca报价:

(...)首先,这两个不同动作附带的Magento(您还将在缓存管理页面上找到两个按钮)。

当cache:clean通过标签cache:flush删除缓存存储时,将清除所有内容。

这里有两个主要区别:

  • 有些东西没有适当的标签就存储在缓存中。cache:clean不会删除那些。
  • 其他事情可能正在使用相同的缓存存储(不建议这样做,但遗憾的是有时候是这种情况)。刷新缓存将导致所有内容被删除。因此,如果多个Magento实例使用相同的缓存存储,或者如果您将会话存储在用于缓存的同一Redis数据库中(请不要!),那么它们也将消失。

1

php bin / magento缓存:干净

清除缓存类型只会删除已启用的Magento缓存类型中的所有项目。换句话说,此选项不会影响其他进程或应用程序,因为它仅清除Magento使用的缓存。

不清除禁用的缓存类型。

php bin / magento缓存:刷新

刷新缓存类型将清除缓存存储,这可能会影响使用同一存储的其他进程应用程序。


0

使用bin/magento cache:clean可以指定要清除的(逗号分隔)缓存类型。

支持的类型:

config, layout, block_html, collections, reflection, db_ddl, eav,
customer_notification, target_rule, full_page, config_integration,
config_integration_api, translate, config_webservice

您也可以使用cache:flush做到这一点。请参阅devdocs.magento.com/guides/v2.3/config-guide/cli/…
里卡多·马丁斯

0

虽然cache:clean通过标签删除缓存存储cache:flush将清除所有内容。

这里有两个主要区别:

有些东西没有适当的标签就存储在缓存中。cache:clean不会删除那些。其他事情可能正在使用相同的缓存存储(不建议这样做,但遗憾的是有时候是这种情况)。刷新缓存将导致所有内容被删除。因此,如果多个Magento实例使用相同的缓存存储,或者如果您将会话存储在用于缓存的同一Redis数据库中(请不要!),那么它们也将消失。

来源:https : //github.com/netz98/n98-magerun/issues/588#issuecomment-112453280

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.