【问题标题】:Keep counters up to date for a cached website使缓存网站的计数器保持最新
【发布时间】:2015-11-05 20:55:10
【问题描述】:

我们的网站有显示在文章缩略图上的查看、cmets 和喜欢的计数器。这些缩略图被缓存,然后在各个地方使用,通常是自己缓存的。问题是随着计数器的增加,所有这些不同的缓存片段很快就会变得陈旧。结果是显示相同文章的不同页面将显示具有不同值的计数器。

该站点是在 RoR 4.2.1 中制作的,并且通过 Memcached 完成缓存。

在保持更新内容的同时最大化缓存以获得最佳性能的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 caching memcached


    【解决方案1】:

    有多种方法可以做到这一点,这一切都归结为您需要多少优化:

    1. 加载缓存页面后,在单独的 AJAX 调用中获取页面查看次数。该解决方案应该与您当前的设计高度兼容。

    2. 缓存部分而不是完整页面。这意味着除了页面视图之外,您将拥有所有部分的缓存副本,因此您可能需要对代码进行重大更改。

    3. 如果请求太高,您还可以编写一个近似函数(在 js 中),它给出过去的页面浏览量告诉您估计的页面浏览量,可以显示给最终用户。基础数据可以每分钟刷新一次(或自定义频率)。

    【讨论】:

    • 谢谢穆。当我谈到每页有 21 个缩略图(7x3)时,我可能应该更具体一些,所以有 21 组计数器。解决方案 1 可能仍然会给服务器带来很大压力(除非我还将该调用缓存了几分钟),并且 2 已经完成(俄罗斯娃娃风格)。 3很有意思,我试试看。
    猜你喜欢
    • 2018-01-05
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2011-07-03
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多