0

我正在编写一个类似 reddit 的网站

用户可以显示其选择的类别中的项目。

为此,我正在查询他订阅的类别和项目的JOIN 。

铁杆查询

第一个解决方案:将数据存储在磁盘上的“ categories_1-2-4-7-10.json ”中,并将其提供给浏览相同类别的用户。

缺点:占用磁盘空间,负载重

我正在考虑一个新的解决方案:views。但是我真的不知道它们是如何工作的,它们是否经常重新生成以成为服务器的重载?

View 可以让我查询已经加入的数据

进一步:我只是为首页项目制作一个视图。我不需要优化后面的页面,因为它们的访问频率不高。

4

1 回答 1

1

将内容存储到磁盘然后将它们加载到站点是一个坏主意。与内存操作相比,磁盘操作非常慢。

您仍然可以存储 JSON 文档,但请考虑将它们存储在缓存层中。

像 Redis 这样的东西,这是最近的新热点 ( http://redis.io/ ) 或 Couchbase ( http://www.couchbase.com/ )

将所有内容存储在内存中,站点会更快。

至于重新生成视图的频率……一个好主意是给它们一个过期时间。阅读有关一般缓存如何工作的信息。您可以将类别视图设置为在缓存中存在大约 1 分钟。一分钟后,该项目离开内存,您进行数据库查询以放回较新的版本。冲洗并重复。

于 2013-02-01T17:40:34.510 回答