ますます多くのサイトが、特定のページが受け取るビュー(およびdzone.comのようなクリック)の数を表示しています。読み込みのたびにデータベースにアクセスせずにビュー番号を追跡するためのベストプラクティスは何ですか?
私は頭の中でこれを行う方法についてたくさんの潜在的なアイデアを持っていますが、どれも実行可能ではないようです。
ありがとう、初めてのユーザー。
最初にデータベース アプローチを試してみます。自動インクリメント カウンタの値を返すのはかなり安価な操作なので、驚くかもしれません。ヒット カウントを記録する多くの項目のテーブルを保持することでも、かなりのパフォーマンスが得られるはずです。
しかし、問題は、呼び出しごとにデータベースにアクセスしないようにする方法でした。テーブルを webapp にロードしてそこでインクリメントし、定期的に、または webapp のシャットダウン時にのみデータベースにバックアップすることをお勧めします。
安価なトリックの1つは、値を数分間キャッシュすることです。
忙しいサイトでは、訪問者がページを閲覧するときに、新しいビューのバッチ全体がすでに含まれているため、ビューの正確な数はとにかく重要ではありません。
1つの方法は、memcachedをカウンターとして使用することです。このレート制限の実装を変更して、代わりに一般的なカウンターとして機能させることができます。キーは、有効期限が15分または30分(同時訪問者と見なすものに応じて)のyyyymmddhhmm形式でget
、ページを表示するときにこれらのキーを使用することができます。
memcacheサーバーと通信するための優れたライブラリは、多くの言語で利用できます。
ヒット数を含むフラット ファイルを設定できます。これにはスケーリングの問題がありますが、うまくいく可能性があります。
ページビュー数の表示を気にしない場合は、google analyticsやpiwikなどを使用できます。どちらもページが既に読み込まれた後にリクエストを行うため、読み込み時間には影響しません。分析サーバーに ajax リクエストを行う方法があるかもしれませんが、確かなことはわかりません。Piwik はオープンソースなので、おそらく一緒に何かをハックできます。
サーバー側のスクリプトを使用している場合は、変数でインクリメントします。サービスを再起動するとリセットされる可能性が高いため、精度が必要な場合はあまりお勧めできません。