質問

36,000の記事で1日に約58,000ヒットを受け取るニュースサイトがあります。この36000のユニークなストーリーのうち、30000が1ヒットしか獲得していません(その大部分は検索エンジンクローラーです)、250のストーリーのみが20を超えるインプレッションを獲得します。これらの250の記事は、何でもキャッシュするための記憶の浪費です。

現在、データキャッシュにMySQLクエリキャッシュとXcacheを使用しています。テーブルは5〜10分ごとに更新されるため、クエリキャッシュのみはあまり役に立ちません。頻繁にアクセスしたページを単独で検出してデータをキャッシュするにはどうすればよいですか?

役に立ちましたか?

解決

始めるには2つのオプションがあると思います。

  1. デフォルトでは何もキャッシュしません。

    オブザーバー/オブザーバブルパターンで実装することで、記事のビューがしきい値に達し、ページのキャッシュを開始したときにイベントをトリガーする方法を実装できます。

  2. 作成中のすべての記事をキャッシュします

どちらの場合も、Cronを使用して、定義されたしきい値に達していない記事をパージすることができます。

いずれにせよ、おそらくヒューリスティックな方法を使用して、記事をキャッシュする必要があるほど十分に早期に決定する必要があり、ヒューリスティックな方法と同様に、偽陽性と逆も同様です。

記事がリアルタイムのニュースである場合、コンテンツの読み方に依存します。これは、トラフィックがすぐに生成されるため、おそらく効率的です。

メイン 問題 これらの方法では、最後のアクセスデータタイムやその現在のページビューなどの追加情報を保存する必要があります。

他のヒント

キャッシュのみができます 新着 記事(最近追加されたものだとしましょう)。見てみることをお勧めします memcachedRedis - それらは両方とも非常に便利で、シンプルで、同時に強力なキャッシュエンジンです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top