Mat*_*lee 5 caching doctrine mongodb doctrine-orm doctrine-odm
如何缓存Doctrine MongoDB结果呢?查看Configuration的代码,它似乎没有像标准Doctrine那样的内置结果缓存,只有查询缓存.
我曾想过在应用程序中创建自己的缓存层,但返回的对象非常繁重,因为它们包含视图不需要的许多Doctrine逻辑.如何配对对象,使它们实际上只是数据容器?
Doctrine MongoDB ODM不支持查询缓存,因此这绝对是您暂时需要在应用程序中处理的内容.
如果您遇到重型对象的问题,则很可能是Proxy实例(对于引用的文档),因为它们包含对内部Doctrine服务的引用(例如UnitOfWork).如果你想有效地缓存这些,你基本上需要在存储之前剔除这些引用,然后在从缓存中获取后恢复它们.这可能比它的价值更麻烦,但它会将对象减少到你想要的数据容器.
或者,如果您正在使用查询构建器,则可以禁用水合作用,然后为返回的数组结果实现缓存.除此之外,您可以在应用程序中查看缓存视图(这在Symfony2中是理想的,其中一个请求可能会遇到多个控制器,每个控制器都可以应用自己的缓存规则并可选择使用ESI).
| 归档时间: |
|
| 查看次数: |
2049 次 |
| 最近记录: |