我有静态缓存页面,我想跟踪点击次数,然后按人气排序.
在Redis中跟踪这些视图然后将它们加载回主数据库的最佳方法是什么?
现在我正在考虑使用像这样的jquery
$.get("/track/", { id: "1234" } );
并使用“轨道”控制器中的redis gem来调用
redis.incr "1234"
每天一次,我会跑一个类似的东西
Pages.each do |p|
p.hits = redis.get(p.id.to_s)
end
最佳答案 这是我最后的rake任务,以防万一它可以帮助任何人
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