./bin/console cache:clear --env=prod
和rm -rf var/cache/prod/*
之间的区别是什么?控制台命令很慢。 Bash命令很快。那么,......为什么要使用cache:clear
代替rm
?
答案 0 :(得分:20)
cache:clear
擦除以前创建的缓存项,但也,它会执行缓存预热。在此之后,由于缓存已经预先填充,因此应用程序应该加载非常快。
另一方面,rm -rf
只完成工作的一部分。在此之后第一次尝试加载应用时,您会注意到性能影响。
我还想指出另一件事:权限。例如,如果您以root
身份登录,并且未通过setfacl
(或任何其他方法)设置访问权限,cache:clear
很可能会创建{{1}所拥有的缓存项目1}}。这可能是一个问题,在线下。
希望这有点帮助...
答案 1 :(得分:8)
“cache:clear”命令不仅会删除缓存,而且通常会构建更新的缓存数据(预热),这样symfony就不必在第一个请求到来之后创建一个,这就是需要更多时间的原因而不仅仅是通过“rm -rf”删除缓存文件夹下的文件。 即使您可以更快地完成该命令,如果您没有事先通过此命令创建缓存,则需要时间来处理第一个请求。
http://symfony.com/doc/current/console/usage.html
因此,通常最好运行cache:clear,至少在整个部署过程中。 您使用rm命令的情况通常只有在某些文件权限出错时(即,您可能运行了错误用户的命令)并且没有剩下的选择,我认为。
答案 2 :(得分:0)
几乎所有命令:
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