2

我们目前有一个包含大量评论(带有“upvote”分数)的网站,这些评论总是按 id 排序而不是分页。

我们想添加不同的方式来对评论进行排序(最新、最高分等)以及可以自定义的分页(每页 10、25、100)。

现在,缓存对我们来说很容易。我们可以将原始 HTML 缓存起来,然后为对象吐出注释。如果我们缓存 per_page 和 sort_method 的每一种可能的组合,我们就可以实现这一点,但是命中率会低得多,因为它们的特异性要高得多。

我们目前正试图为此想出一个好的策略,但我们有点难过。

额外信息:

  • 我们使用 RDS 服务器和用于内存缓存的 ElastiCache 对 AWS 上的多个 EC2 实例进行负载平衡。
  • 如果其他可行的技术在我们的基础设施中运行良好,我们愿意接受其他可行的技术来实现我们的目标。(例如。redis)
4

1 回答 1

1

我不认为只有一个答案,因为很大程度上取决于您网站的实际数量,例如每个 id 的最大评论数。

但是,我不会缓存 HTML 页面,而是缓存构建页面所需的数据,可能作为 SQL 结果集。对于每个排序顺序,我都会有一个缓存条目,其中包含所有评论,然后过滤掉你不需要的那些。如果这看起来太大,那么您也可以将其划分为 N 条评论块。

请记住,您将需要一些强大的方法来处理更新,因此知道要删除哪些键很重要,这就是为什么我喜欢上面所有评论的解决方案,但正如我所说,这实际上取决于您的数字。

于 2012-09-10T08:05:11.593 回答