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

sen*_*rio 16 symfony

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

Jov*_*vic 21

cache:clear湿巾以前创建的缓存项,但,但它确实缓存热身.在此之后,由于缓存已经预先填充,因此应用程序应该加载非常快.

另一方面,rm -rf只做一部分工作.在此之后第一次尝试加载应用时,您会注意到性能影响.

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

希望这个对你有帮助...


Mot*_*ler 8

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

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

因此,通常最好运行缓存:清除,至少在整个部署过程中.你会使用rm命令的情况通常只有在某些文件权限出错时(也就是说你运行了错误用户的命令)并且没有剩下的选择,我想.


Mos*_*afa 5

您最好使用“官方”最佳方法,而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
Run Code Online (Sandbox Code Playgroud)