2

ユーザーが画像を保存して共有できるアプリケーションを維持しています。システムは、バックエンドでMongoDBを利用しています。ほとんどの画像描写ページはフラットなHTMLファイルとしてキャッシュされますが、ファイルをロードする直前にいくつかのコードを実行できます。

システムのビューカウントを実装することにしました。そのための最良の保管場所はどこかと思います。Memcachedに似ているはずですが、1時間ごとにビューカウントを保存する必要があるため、サーバーを再起動する必要がある場合でも、ビューカウントが失われることはありません。

そのための最良の解決策は何ですか(できればクライアントとしてPHP拡張機能を使用)?

4

4 に答える 4

2

Redisを調べるかもしれません。NoSQLとmemcachedの間の一種のクロス。ただし、Redisをディスクに保存することはできます。 memcachedはRedisと比較して恐竜ですか?

于 2010-12-30T03:34:34.770 に答える
0

表示回数は、キャッシュされたフラットHTMLファイルごとのように聞こえますか?ファイルの先頭にあるコードにそれらを保存してみませんか。ファイル閲覧時に取り出すことができます...

于 2010-12-27T19:45:35.780 に答える
0

私はかつて、ビュー数をmemcachedに保存し、ビュー数に基づいてランダムな間隔でデータベースを更新することで、この問題を解決しました。データベースに保存される確率は1/sqrt(ビュー数)でした。これは素晴らしい特性を持っていました。ビューの数が4のように少なかった場合、データベースに書き込む確率は1/2でした。オブジェクトのビュー数が多い場合、たとえば1,000,000の場合、確率は1/1000になります。それはうまくいったようです。

于 2010-12-30T02:52:24.637 に答える
0

簡単なことをしてください...リアルタイムのレポート/統計が必要ない場合は、毎日のapacheログを解析し、一致数をデータベースまたはフラットファイル形式で保存する必要があります。

利点?

  1. 既存のアプリケーションに害を及ぼすことはありません
  2. 追加のmemcacheなどは必要ありません
  3. 毎日のログapacheを解析する必要があります(1日1回)
  4. 回復可能

もちろん、これは、データベースを定期的に読み取り/更新するためのcronジョブを設定することを妨げるものではありません(より新しいビューカウントのために)

于 2010-12-30T02:57:30.520 に答える