如何缓存Doctrine MongoDB结果?查看用于配置的代码,它似乎没有像标准Doctrine那样的内置结果缓存,只有查询缓存。
我已经考虑过在应用程序中创建自己的缓存层,但返回的对象相当繁重,因为它们包含大量视图不需要的Doctrine逻辑。我如何配对对象,使它们有效地只是数据容器?
发布于 2012-09-20 02:31:50
does ODM不支持查询缓存,所以这肯定是你目前需要在应用程序中处理的事情。
如果你有一个重对象的问题,它最有可能是代理实例(对于引用的文档),因为这些实例包含对内部Doctrine服务的引用(例如UnitOfWork)。如果你想高效地缓存这些引用,你基本上需要在存储之前剔除这些引用,然后在从缓存中获取之后恢复它们。这可能会带来比它的价值更多的麻烦,但它会将对象减少到您想要的数据容器。
或者,如果您使用的是查询构建器,则可以禁用水合,然后为返回的数组结果实现缓存。除此之外,您还可以查看应用程序中的缓存视图(这在Symfony2中非常理想,在这种情况下,一个请求可能会访问多个控制器,每个控制器都可以应用自己的缓存规则并可选地使用ESI)。
https://stackoverflow.com/questions/12473797
复制相似问题