我已经广泛阅读了有关教义的各种不同的缓存选项以及symfony缓存机制:
Symfony官方:https://symfony.com/doc/4.0/components/cache.html
博士官员:https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/caching.html
KnP大学(一如既往的有用):https://knpuniversity.com/screencast/symfony-fundamentals/caching
我应该使用Doctrine缓存还是Symfony 4缓存?选择哪一个?
我想从数据库中提取大量要缓存的数据(拉动带有大量左联接的实体),这些左联接有时每小时,每天或每分钟更新一次定期通过带有cron作业(symfony命令)的机器人来调用。
data.csv
考虑到频繁的更新,我不确定如何正确地缓存此查询。
谢谢
答案 0 :(得分:1)
Doctrine有几种类型的缓存:
前两种类型的Doctrine缓存与您的问题无关,因为它们专用于Doctrine,在Symfony中没有直接替代方法。查询结果缓存可以(间接)替换为Symfony缓存。
查询结果缓存的使用以及有关使用哪个缓存的决定应取决于应用程序的逻辑。如果满足以下条件,您可以选择使用Doctrine查询结果缓存:
在这种情况下,Doctrine查询结果缓存可能对您有用,因为它对您的应用程序是透明的。它可能仅对某些查询有用,因为您可以在每个查询的基础上控制Doctrine缓存的使用和生存期。
在某种情况下,如果您需要对从数据库中获取的结果进行进一步处理,然后再将其存储在缓存中,或者您可以应用一些其他逻辑来确定缓存内容是否过时-最好使用Symfony缓存,因为特定于您的应用程序,并且可以由您控制。