gre*_*emo 11 symfony doctrine-orm symfony-2.3
我正在使用Memcached服务器(以及memcache PHP扩展)来缓存验证器元数据和Doctrine metatada/result/query缓存驱动程序.
一切都按预期工作,与文件系统缓存相比速度很快.
我的问题是,命令是否:
php app/console cache:clear --env=prod --no-debug
Run Code Online (Sandbox Code Playgroud)
自动清除所有类型的缓存(包括memcache)?
运行此命令并检查服务器统计信息后,项目计数始终与缓存占用相同:

我的配置,其中%prod_cache%参数实际上是字符串memcache:
# Framework Configuration
framework:
validation:
cache: %prod_cache% # Matches validator cache service
# Doctrine Configuration
doctrine:
orm:
metadata_cache_driver:
type: service
id: cache_%prod_cache%
result_cache_driver:
type: service
id: cache_%prod_cache%
query_cache_driver:
type: service
id: cache_%prod_cache%
# DoctrineCacheBundle Configuration
doctrine_cache:
providers:
memcache:
type: memcache
alias: cache_memcache
# Services
services:
validator.mapping.cache.memcache: # Validator cache service
class: Symfony\Component\Validator\Mapping\Cache\DoctrineCache
arguments: [@cache_memcache]
Run Code Online (Sandbox Code Playgroud)
Jas*_*wer 15
缓存:明确
该cache:clear命令不会清除Doctrine缓存.它只清除一些Symfony 2框架特定的缓存,主要是app/cache(或var/cache)目录.
教义命令
要清除Doctrine缓存,请使用:
doctrine:cache:clear-metadata --env=proddoctrine:cache:clear-query --env=proddoctrine:cache:clear-result --env=prod额外的缓存
如果您使用其他缓存存储,则必须自行清除它们.您可以查看doctrine:cache:clear-*命令,以获得有关如何创建自己的命令的启发.
但是,在查看配置时,可以使用单个缓存存储来存储3个Doctrine缓存和Symfony Validator缓存.所以只召唤一个doctrine:cache:clear-*应该清除一切.
无关
当使用像APC,OPcache和其他人一样的缓存系统时,您必须了解当您从命令行运行PHP脚本时,使用不同的内存空间然后从Web服务器运行PHP脚本.
换句话说:当您从命令行清除此类缓存时,Web服务器使用的缓存不会受到影响.为了清除Web服务器缓存,您需要从Web服务器本身运行缓存清除脚本.
这对memcached来说不是问题,因为它是一个管理自己内存空间的独立程序.
你必须自己清除外部缓存,从doc(SF 2.5):
根据您的设置,您可能还需要执行许多其他操作:[...]清除APC缓存
请参阅:http://symfony.com/doc/current/cookbook/deployment/tools.html#e-other-things
| 归档时间: |
|
| 查看次数: |
9210 次 |
| 最近记录: |