我有静态缓存的页面,我想跟踪它们的点击率,然后按受欢迎程度排序。
在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