繁体   English   中英

清除 Symfony 中的缓存:`cache:clear` 或 `rm -rf`?

[英]Clear cache in Symfony: `cache:clear` or `rm -rf`?

./bin/console cache:clear --env=prodrm -rf var/cache/prod/*之间的区别是什么? 控制台命令很慢。 Bash 命令很快。 那么,...为什么使用cache:clear而不是rm

cache:clear湿巾以前创建的缓存项,而且,它确实缓存热身。 在此基础上,由于缓存已经预先填充,您的应用程序应该加载得非常快。

另一方面, rm -rf只完成工作的一部分。 在此之后第一次尝试加载应用程序时,您应该会注意到性能影响。

我还想指出另一件事:权限。 例如,如果您以root身份登录,并且没有通过setfacl (或任何其他方法)设置访问权限,则cache:clear很可能会创建root拥有的缓存项。 这可能是一个问题,下线。

希望这会有所帮助...

"cache:clear" 命令不仅删除缓存,而且通常会构建更新的缓存数据(预热),这样 symfony 就不必在第一个请求到来后创建一个,这就是它比单纯的花费更多时间的原因通过“rm -rf”删除缓存文件夹下的文件。 即使您可以更快地完成该命令,如果您没有通过此命令提前创建缓存,您也需要时间来处理第一个请求。

http://symfony.com/doc/current/console/usage.html

所以,通常最好运行cache:clear,至少在整个部署过程中是这样。 我认为,您使用 rm 命令的情况通常是在某些文件权限出错时(即,您可能使用错误的用户运行了一个命令)并且没有其他选择。

几乎所有命令:

  cache:clear                             Clears the cache
  cache:pool:clear                        Clears cache pools
  cache:warmup                            Warms up an empty cache
  doctrine:cache:clear-collection-region  Clear a second-level cache collection region.
  doctrine:cache:clear-entity-region      Clear a second-level cache entity region.
  doctrine:cache:clear-metadata           Clears all metadata cache for an entity manager
  doctrine:cache:clear-query              Clears all query cache for an entity manager
  doctrine:cache:clear-query-region       Clear a second-level cache query region.
  doctrine:cache:clear-result             Clears result cache for an entity manager

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM