ベンチマーク(3層Webアーキテクチャ)を高速化しようとしていますが、Memcache(d)とVarnishに関して一般的な質問がいくつかあります。
違いはなんですか?
ワニスはWebサーバーの背後にあり、Webページをキャッシュしているため、コードを変更する必要はなく、設定だけが必要です。
反対側では、Memcachedは汎用キャッシングシステムであり、主にデータベースからの結果をキャッシュするために使用され、get
メソッドの変更が必要です(最初のキャッシュルックアップ)。
両方使用できますか?フロントWebサーバーにニスを塗って、データベースキャッシングにMemcachedを使用しますか?
より良いオプションは何ですか?
(シナリオ1-主に書く、
シナリオ2-主に読む、
シナリオ3-読み取りと書き込みは似ています)
Stackoverflow.comに適用できる例:このコメントを追加するとページキャッシュが無効になるので、このページはVarnish(およびおそらく最初にキャッシュする価値がない私のプロフィールページ)からクリアする必要があります。影響を受けるページが少し問題になる場合があります)。ただし、すべてのコメントはまだMemcacheにあるため、データベースはこのコメントを記述するだけで済みます。ページを生成するためにデータベースで他に何もする必要はありません。すべてのコメントはMemcacheによってプルされ、誰かが再び影響を与えるまで(おそらく私の回答を投票することによって)ページは再キャッシュされます。繰り返しますが、データベースは投票を書き込み、他のすべてのデータはMemcacheから取得され、寿命は短くなります。
MemcacheはDBが多くの読み取り作業を行うのを防ぎ、Varnishはページの生成頻度を減らすことで動的WebサーバーのCPU負荷を節約します(Memcacheでない場合はdbの負荷も少し軽くします)。
私の経験は、ワニスをDrupalで使用することから来ています。できるだけ簡単な言葉で、私が答える方法は次のとおりです。
一般に、Varnishは(Cookieを介した)認証されていないトラフィックに対して機能し、memcachedは認証されたトラフィックをキャッシュします。
両方を使用します。