【问题标题】:Strategy for memcache with sortable and paginated data具有可排序和分页数据的 memcache 策略
【发布时间】:2012-08-30 13:31:18
【问题描述】:

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

我们希望以不同的方式添加对 cme​​ts 进行排序(最新、最高分等)以及可以自定义的分页(每页 10、25、100 个)。

现在,缓存对我们来说很容易。我们可以对原始 HTML 进行内存缓存,然后为一个对象吐出 cmets。如果我们缓存 per_page 和 sort_method 的所有可能组合,我们就可以实现这一点,但命中率会低得多,因为它们的特异性要高得多。

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

额外信息:

  • 我们在 AWS 上使用 RDS 服务器对多个 EC2 实例进行负载平衡,并 用于内存缓存的 ElastiCache。
  • 我们对其他可行的技术持开放态度 如果它们在我们的基础设施中运行良好,就可以实现我们的目标。 (例如。redis)

【问题讨论】:

    标签: caching memcached


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 2014-03-03
      • 2020-01-22
      • 1970-01-01
      相关资源
      最近更新 更多