現在Ruby on Rails 5 でwebアプリ開発をしています
ユーザーが記事ページを作成し、その記事にコメントをつける、というのが大まかな機能です
TOPページには、一日・一週間・一か月など決まった期間で最も閲覧された記事のランキングを表示したいです
記事の作成、コメントの投稿機能の実装は完了しました
しかしランキングの集計には調べてみたところさまざまな方法があるらしく、皆様の助言をいただきたく質問した次第です
まず初めに、Redisを使う方法です
Redisを導入してとりあえず記事ページの中にそのページが何回見られたかを表示するところまではうまくいきました
しかしF5キー連打でカウンターが増加してしまいました。PVの工作はされたくないのでこれでは困ります
(おそらくcookieなどを使えば阻止できるのでしょうが...その場合cookieを消されたら無意味になりますが)
次にimpressionistというgemを使う方法です
手軽にできて、何回もリロードした際も測定し直さないようにできるらしいのですが
RDBを使うので、そこがボトルネックにならないか心配です
また、アクセスログを解析するという方法もあるらしいです
軽く調べただけなので恐らくほかにも方法はたくさんあると思います
私がアクセスランキング機能に求める条件は以下の通りです
(1)指定した時間だけインターバルを置かないとカウントされない
(2)処理が重すぎない
(3)指定した日付のPV数やPVの上昇・下降率も見れるようにしたい
この条件をなるべく満たすためにはどのような方法をとれば良いでしょうか?
あなたの回答
tips
プレビュー