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

我有静态缓存页面,我想跟踪点击次数,然后按人气排序。

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

现在我正在考虑使用像这样的jquery

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

并使用“轨道”控制器中的redis gem来调用

 redis.incr "1234" 

每天一次,我会跑一个类似的东西

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

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

 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 

你做的是一个很好的方法,但你也可以使用服务器日志来获得该页面上的点击次数。 使用服务器日志可以让您不必为每个页面添加代码,并且可以跟踪唯一的匹配,而不仅仅是命中。 如果你热衷于使用Redis,那么你的方式很好。