Очистить кэш в Symfony:` cache: clear `или`rm-rf'?

в чем разница между ./bin/console cache:clear --env=prod и rm -rf var/cache/prod/*? Консольная команда очень медленная. Bash-команда быстрая. Так. ,.. зачем использовать cache:clear вместо rm?

2 ответов


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, обычно только тогда, когда некоторые разрешения файлов пошли не так (т. е., Возможно, вы запустили команду с неправильным пользователем), и, я думаю, не было выбора.