115

ベンチマーク (3 層 Web アーキテクチャ) を高速化しようとしていますが、Memcache(d) と Varnish に関する一般的な質問があります。

  • 違いはなんですか?Varnish
    は Web サーバーの背後にあり、Web ページをキャッシュし ており、コードを変更する必要はなく、構成のみが必要なようです。 一方、Memcachedは汎用キャッシング システムであり、主にデータベースからの結果をキャッシュするために使用され、メソッド (最初のキャッシュ ルックアップ) を変更する必要があります。
    get

  • 両方を使用できますか? フロントWebサーバーとデータベースキャッシング用のMemcachedにニスを塗りますか?

  • より良いオプションは何ですか?

    (シナリオ 1 - 主に書き込み、
    シナリオ 2 - 主に読み取り、
    シナリオ 3 - 読み取りと書き込みは類似しています)

4

2 に答える 2

277
  • ワニスはウェブサーバーの前にあります。キャッシュするリバース HTTP プロキシとして機能します。
  • 両方を使用できます。
  • 主に書き込み -- Varnish は、影響を受けるページをパージする必要があります。これによりオーバーヘッドが発生し、変更されたページにはほとんどメリットがありません。
  • 主に読まれます -- Varnish はおそらくそのほとんどをカバーします。
  • 同様の読み取りと書き込み -- Varnish は多くのページを提供し、Memcache は既知のデータと新しいデータが混在するページの情報を提供し、ページをより高速に生成できるようにします。

stackoverflow.com に適用できる例: このコメントを追加するとページ キャッシュが無効になるため、このページは Varnish (および私のプロファイル ページも、おそらく最初からキャッシュする価値はない) からクリアする必要があります。影響を受けるページは少し問題になる可能性があります)。ただし、すべてのコメントは引き続き Memcache にあるため、データベースはこのコメントのみを書き込む必要があります。ページを生成するために、データベースが行う必要のある操作は他にありません。すべてのコメントは Memcache によって取得され、ページは誰かが再び影響を与えるまで再キャッシュされます (おそらく私の回答に投票することによって)。繰り返しますが、データベースが投票を書き込み、他のすべてのデータは Memcache から取得され、処理は高速です。

Memcache は、DB が多くの読み取り作業を行うのを防ぎます。Varnish は、ページを生成する頻度を減らすことで、動的 Web サーバーを CPU 負荷から節約します (Memcache を使用しない場合は、DB 負荷も少し軽減します)。

于 2010-12-20T13:50:34.277 に答える
33

私の経験は、Drupal で Varnish を使用することから来ています。できるだけ簡単に言うと、次のように答えます。

一般に、Varnish は認証されていない (Cookie による) トラフィックに対して機能し、memcached は認証されたトラフィックをキャッシュします。

したがって、両方を使用してください。

于 2011-08-07T03:47:09.467 に答える