Symfony 和 Doctrine 元数据缓存

Sto*_*eak 5 php caching apc symfony doctrine-orm

我正在尝试优化我的 Symfony 应用程序性能,我关注了这些帖子:

我“担心”这些行:

doctrine:
    orm:
        entity_managers:
            default:
                metadata_cache_driver: apc
                query_cache_driver: apc
                result_cache_driver: apc
Run Code Online (Sandbox Code Playgroud)

它们是否可以安全使用,或者在部署后我必须小心处理它们?我正在清除缓存php app/console cache:clear --env=prod --no-debug,是否也需要清除 APC 缓存?

Ste*_*ant 11

是的,一般来说,您应该在部署后清除 APC 缓存。但这取决于您自上次部署以来所做的更改。

cache:clear不会清除 Doctrine 缓存。它只清除你的缓存目录(var/cache/{env}对于 Symfony 3+,app/cache对于 2.8):FrameworkBundle/Command/CacheClearCommand.php

因此,如果某些内容(例如您的实体)自上次部署以来发生了变化,您应该在部署后清除缓存。

如果您手动部署,请在适用时运行以下命令:

bin/console doctrine:cache:clear-query --env=prod
bin/console doctrine:cache:clear-result --env=prod
bin/console doctrine:cache:clear-metadata --env=prod
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢安全而不是抱歉,或者如果您自动部署,请运行所有这些。

不幸的是,无法使用 CLI 清除 APC 缓存。请参阅此答案此问题。作为替代方案,您可以重新启动您的网络服务器