복붙노트

[REDIS] jQuery를 레디 스 캐시 레일 페이지 뷰를 추적하는 카운터 히트

REDIS

jQuery를 레디 스 캐시 레일 페이지 뷰를 추적하는 카운터 히트

나는 인기로의 안타 후 주문을 추적하려는 정적 캐시 된 페이지가 있습니다.

주 데이터베이스에 다시로드 한 후 레디 스에서 이러한 견해를 추적하고 가장 좋은 방법이 있을까요?

지금은이 같은 jQuery를 사용하여 생각하고

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

및 호출에 "트랙"컨트롤러의 레디 스 보석을 사용하여

redis.incr "1234"

하루에 한 번 나는 다음과 같은 무언가에 크론을 실행하는 것입니다

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

해결법

  1. ==============================

    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
    
  2. ==============================

    2.무엇 당신이 일을하는 것은 그것을 할 수있는 좋은 방법입니다,하지만 당신은 또한 해당 페이지 히트 수를 얻기 위해 서버 로그를 사용할 수 있습니다. 서버 로그를 사용하여 각 페이지에 코드를 추가 할 필요가 없습니다, 독특한 안타를 추적 할 수 있도록 할 수있는 것, 다만 명중 없습니다. 당신은 레디 스로 그 일에 촉각을 곤두 세우고있다 있다면, 당신의 방법이 좋다.

    무엇 당신이 일을하는 것은 그것을 할 수있는 좋은 방법입니다,하지만 당신은 또한 해당 페이지 히트 수를 얻기 위해 서버 로그를 사용할 수 있습니다. 서버 로그를 사용하여 각 페이지에 코드를 추가 할 필요가 없습니다, 독특한 안타를 추적 할 수 있도록 할 수있는 것, 다만 명중 없습니다. 당신은 레디 스로 그 일에 촉각을 곤두 세우고있다 있다면, 당신의 방법이 좋다.

  3. from https://stackoverflow.com/questions/4800745/jquery-redis-hit-counter-to-track-view-of-cached-rails-pages by cc-by-sa and MIT license