jQuery Redis счетчик посещений для отслеживания просмотра кэшированных страниц Rails - PullRequest
4 голосов
/ 26 января 2011

У меня есть статические кэшированные страницы, которые я хочу отслеживать, а затем упорядочивать по популярности.

Как лучше всего отслеживать эти представления в Redis и затем загружать их обратно в основную базу данных?

Сейчас я думаю об использовании jquery, как это

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

и использование redis gem в контроллере «track» для вызова

redis.incr "1234"

Один раз в день я запускаю крона с чем-то вроде

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

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Вот мое последнее задание по рейку, на случай, если оно кому-нибудь поможет

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
0 голосов
/ 26 января 2011

То, что вы делаете, - это хороший способ сделать это, но вы также можете использовать журнал сервера, чтобы получить количество посещений на этой странице.Использование журнала сервера позволит вам не добавлять код на каждую страницу и позволит отслеживать уникальные хиты, а не только хиты.Если вы заинтересованы в том, чтобы делать это с Redis, тогда ваш путь хорош.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...