php-LswMemcacheBundle中的缓存生存时间
作者:互联网
我决定使用LswMemcacheBundle(在Symfony2中)将Doctrine2查询缓存到memcached中,但是我遇到了一个问题.我找不到有关更改缓存寿命的可能性的任何信息,即使是关于默认寿命的信息也是如此.
有没有人可以向我提供这些信息?
解决方法:
似乎并未为所有查询启用结果缓存(但启用了查询缓存),我们需要使用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是我们的缓存键.
标签:doctrine-orm,symfony,memcached,php,lsw-memcache-bundle 来源: https://codeday.me/bug/20191122/2061221.html