Webアプリケーションがmemcachedを使用している場合はvarnishをデプロイする必要がありますか、それともvarnishを使用してWebコンテンツをキャッシュする場合はmemcachedが必要ですか?
どちらか、または両方を使用する必要があるシナリオをいくつかお勧めできる人はいますか?
答え1
HTTPプロキシサーバーは、memcached
さまざまな問題を解決し、ソフトウェアスタックのさまざまな層に適用されるさまざまな技術です。どちらも便利です。
アプリケーションの前にあるHTTPプロキシサーバーはキャッシュ内の要求に応答できるため、アプリケーションはいくつかの要求の負荷を処理する必要はありません。これは、アプリケーションがキャッシュ可能なコンテンツを出力し、エンドユーザーがそのコンテンツを複数回要求する場合にのみ機能します。コンテンツをキャッシュできるようにするには、プロキシサーバー(およびブラウザ)がキャッシュ可能な内容と期間を知るように、アプリケーションで適切なHTTPヘッダーを設定する必要があります。
要求がアプリケーションに転送される場合(HTTPプロキシキャッシュが見つからない場合、またはHTTPプロキシがない場合)、アプリケーションは再送信する必要があるものを計算する必要があります。この計算コストがかかりますが、前の要求で部分データをキャッシュできる場合は、memcached
アプリケーションが後で再利用できるように、これらの計算の[部分]結果を保存するのに最適な方法です。これを行うには、アプリケーションを特別に作成し、memcached
このデータをインポートして設定するには、インスタンスに接続する必要があります。
答え2
Varnishは、html、js、css、画像などのWebファイルを提供するように設計されています。インターネットクライアントとバックエンドアプリケーションサーバー間のHTTPトラフィックを傍受します。 Varnishはhttpポート80をリッスンし、HTTPプロトコルを使用します。ブラウザとバックエンドアプリケーションの両方がVarnishが存在することを知る必要はなく、正しく設定されていると機能します。
Memcachedは通常、データベースへのクエリの数を減らすためにデータベースサーバーからアプリケーションに送信されたデータをキャッシュするために使用されるアプリケーションです。また、データがメモリにキャッシュされるため、検索速度がはるかに高速になります。代わりに、Memcachedからデータを挿入して取得するアプリケーションを制御します。つまり、Memcachedを正しく使用するにはアプリケーションを作成する必要があります。 MemcachedはHTTPプロトコルをサポートしていません。