使缓存网站的计数器保持最新

时间:2015-08-13 03:15:31

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

  3. 如果请求太高,您还可以编写一个近似函数(以js为单位),给定过去的页面视图会告诉您估计的页面视图,可以显示给最终用户。基础数据可以每分钟(或自定义频率)刷新。