如何缓存 Doctrine MongoDB 结果?查看配置代码,它似乎没有像标准 Doctrine 那样内置结果缓存,只有查询缓存。
我想过在应用程序中创建自己的缓存层,但返回的对象非常重,因为它们包含视图不需要的大量 Doctrine 逻辑。如何将对象配对,使它们实际上只是数据容器?
Doctrine MongoDB ODM 不支持查询缓存,因此这绝对是您暂时需要在应用程序中处理的事情。
如果您遇到重对象的问题,很可能是代理实例(对于引用的文档),因为它们包含对内部 Doctrine 服务(例如 UnitOfWork)的引用。如果您想有效地缓存这些,您本质上需要在存储之前剔除这些引用,然后在从缓存中获取后恢复它们。这可能比它的价值更麻烦,但它会将对象减少到您想要的数据容器。
或者,如果您使用查询生成器,则可以禁用水合作用,然后对返回的数组结果实施缓存。除此之外,您可以研究应用程序中的缓存视图(这在 Symfony2 中是理想的,其中一个请求可能会到达多个控制器,每个控制器都可以应用自己的缓存规则并可选择使用 ESI)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)