LswMemcacheBundle (Symfony2 内) を使用して Doctrine2 クエリを memcached にキャッシュすることにしましたが、問題が 1 つあります。デフォルトの寿命についてさえ、キャッシュの寿命を変更する可能性に関する情報が見つかりません。
私にそのような情報を提供できる人はいますか?
LswMemcacheBundle (Symfony2 内) を使用して Doctrine2 クエリを memcached にキャッシュすることにしましたが、問題が 1 つあります。デフォルトの寿命についてさえ、キャッシュの寿命を変更する可能性に関する情報が見つかりません。
私にそのような情報を提供できる人はいますか?
すべてのクエリで結果キャッシュが有効になっていないようです (ただし、クエリ キャッシュは有効になっています) useResultCache
。メソッドを使用して有効にする必要があります。このメソッドを使用すると、キャッシュの有効期間を設定することもできます。
なのでこんな感じになります
$em->createQuery('SELECT a FROM SomeBundle:Entity a')
->useResultCache(true, 3600, 'cacheId')
->getResult();
そしてcreateQueryBuilder
$repository = $this->getEntityManager()->getRepository('SomeBundle:Entity');
$qb = $repository->createQueryBuilder('g');
$qb->andWhere('g.categoryId = :categoryId')->setParameter('categoryId', '1');
$qb->addOrderBy('g.id', 'DESC');
$query = $qb->getQuery();
$query->useResultCache(true, 3600, 'cacheId');
キャッシュの3600
有効期間 (秒) とcacheId
キャッシュ キーです。
cacheDriver を介してメソッドを使用してキャッシュの有効期間を設定する必要があると思います。
http://docs.doctrine-project.org/en/2.0.x/reference/caching.html#result-cache
http://docs.doctrine-project.org/en/2.0.x/reference/caching.html#saving