小编典典

jQuery Redis计数器跟踪缓存的Rails页面的视图

redis

我有静态缓存的页面,我想跟踪它们的点击率,然后按受欢迎程度排序。

在Redis中跟踪这些视图然后将它们重新加载到主数据库中的最佳方法是什么?

现在我正在考虑使用这样的jQuery

$.get("/track/", { id: "1234" } );

并在“跟踪”控制器中使用redis gem进行调用

redis.incr "1234"

每天一次,我会像这样

Pages.each do |p|
   p.hits = redis.get(p.id.to_s)
end

阅读 428

收藏
2020-06-20

共1个答案

小编典典

这是我最后的耙任务,以防万一它可以帮助任何人

require 'redis'
task :cron => :environment do
   uri = URI.parse(REDIS_URL)
   REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

   Pages.all.each do |p|
      views = REDIS.get(p.id.to_s)
      if views
          p.hits = p.hits + views.to_i

          if p.save
             REDIS.set pId, "0"
          end
       end
   end
 end
2020-06-20