Caching 如何正确地使Symfony2应用程序的生产缓存无效?

Caching 如何正确地使Symfony2应用程序的生产缓存无效?,caching,reload,symfony,Caching,Reload,Symfony,我更改了应用程序的配置,并将新代码部署到生产服务器。由于应用程序不解析配置文件并使用预编译类,因此我需要更新缓存文件 有app/console缓存:warmup和app/console缓存:clear命令。但是缓存在调用这些命令后没有更新,所以我不得不手动删除app/cache文件夹 手动删除是非常危险的操作,因为它不是原子的,所以我可以在请求期间删除部分缓存,这可能会导致致命错误 如何重新加载缓存?我相信您可以试试 app/console cache:clear--no-debug您错过了en

我更改了应用程序的配置,并将新代码部署到生产服务器。由于应用程序不解析配置文件并使用预编译类,因此我需要更新缓存文件

app/console缓存:warmup
app/console缓存:clear
命令。但是缓存在调用这些命令后没有更新,所以我不得不手动删除app/cache文件夹

手动删除是非常危险的操作,因为它不是原子的,所以我可以在请求期间删除部分缓存,这可能会导致致命错误

如何重新加载缓存?

我相信您可以试试
app/console cache:clear--no-debug

您错过了
env
参数:
app/console cache:clear--env=prod--no-debug

清除缓存并立即访问我的修复所需的数据

sudo app/console cache:clear --env=prod --no-warmup --no-debug

使用此命令将关闭调试,并且在再次访问数据之前没有预热时间

谢谢,但我怀疑对于高负载来说,关闭缓存不是一个好主意。我只需要优雅地重新加载配置。我相信你可以使用
应用程序/控制台缓存:清除
谢谢!只需一个修复程序即可接受您的答案:app/console cache:clear--env=prod--no debugsing自2.1 app/console提供no
--env
标志后,它将默认为
getenv('SYMFONY_env')
dev
。另外,如果提供了
--env=prod
,则将强制
--在2.1之前没有调试--no debug
需要显式传递
$env=$input->getParameterOption(数组('--env','-e'),getenv('SYMFONY_env')?:'dev')$debug=getenv('SYMFONY_debug')!='0' && !$输入->hasParameterOption(数组('--no debug','')&&&$env!='戳'手动删除有什么不好?如果没有高负载,手动删除没有什么不好的。只有对缓存和日志文件夹的权限才能变为无效。请记住,
--no warmup
标志可防止在
缓存:清除
完成后生成新的基于环境的缓存。当应用程序第一次运行时,会出现延迟(缓存生成)。