编程语言
首页 > 编程语言> > php-LswMemcacheBundle中的缓存生存时间

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