gpt4 book ai didi

caching - 在Symfony2/Doctrine中清除查询缓存

转载 作者:行者123 更新时间:2023-12-04 04:51:51 28 4
gpt4 key购买 nike

我最近写了我的第一个Symfony2应用程序,一切都很好,除了现在我想添加一些查询缓存以提高性能并减少不必要的查询。我已将以下几行添加到一个特定查询的构建器中:

$query->useResultCache(true)
->useQueryCache(true);

在第一个请求之后,然后按预期使用缓存。我可以在探查器中验证这一点。一切都很棒!

问题是我还写了一个简单的管理面板,允许用户修改内容,但更改后仍使用缓存版本。

有没有一种方法可以“编程地”告诉Symfony2/Doctrine在更新数据时清除查询缓存,还是有一种配置方法?

看来这将是一个常见问题,但我在Google上找不到与该问题有关的任何信息!

最佳答案

我建议使用结果缓存ID-这样,您可以清除一个特定的结果缓存:

$query->setResultCacheId('my_custom_id');
// or shorter notation with lifetime option
$query->useResultCache(true, 3600, 'my_custom_id');

// to delete cache
$cacheDriver = $entityManager->getConfiguration()->getResultCacheImpl();
$cacheDriver->delete('my_custom_id');
// to delete all cache entries
$cacheDriver->deleteAll();

有关删除缓存的更多信息,请参见:
http://docs.doctrine-project.org/en/latest/reference/caching.html#deleting

关于caching - 在Symfony2/Doctrine中清除查询缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559686/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com