Symfony2 Doctrine使用缓存表

时间:2012-12-08 02:46:22

标签: database caching symfony doctrine doctrine-orm

对于我正在进行的项目,我们有一个完全规范化的数据库,其中没有信息是多余的。

我想保留这种方法,但也要添加“缓存”表,这些表本质上是具有预先计算信息的表。我希望能够将这些信息放在单独的表格中(然后可以根据需要将其吹走并重新生成)。

例如,部分内容涉及论坛。一个“缓存”值将是用户发布的帖子数。没有必要将其保留在任何规范化表中,因为它可以根据与该用户链接的帖子数来计算。但是,这是一个(相对)昂贵的调用,因此缓存表会为我跟踪这个值,我可以根据需要从中提取。

我也非常考虑使用像MongoDB这样的NoSQL数据库,因为缓存的表基本上没有连接或外键(使其成为MongoDB的完美选择)。

我应该如何使用Symfony2中的Doctrine来解决这个问题?有人这么做过吗?

非常感谢!

更新

正如greg0ire评论,看起来Doctrine有一些内置的缓存功能:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html

有没有人知道我是否可以使用它来缓存我的值而不将它们存储在数据库中?

例如,如果我有一个未映射的属性$ postCount,我可以使用Doctrine来缓存该值(或者我想,填充该值的对象)?

这种方法的唯一问题(缓存到内存而不是数据库),我们是在集群环境中工作,所以我要么多次构建缓存(用户点击的每个服务器),或者set得到一个共享的缓存服务器设置(这有点棘手)。

我会继续研究这条路线,但有没有人知道任何数据库存储的方法?

感谢。

1 个答案:

答案 0 :(得分:1)