web-dev-qa-db-ja.com

APCとMemcachedの違い、および両方をキャッシュビンに使用する方法

MemcachedとAPCの違いを理解しようとしています。なぜ人々がどちらか一方または両方を使用することについて話しているのはなぜですか。完全に違う役割だと思っていたのに、なぜ両方を使わないのか分かりません。これが私の理解です:

[〜#〜] apc [〜#〜]

これは、PHPコードのチャンクをキャッシュしてRAMに格納します。次に、同じコードを再度実行する必要がある場合、すでにキャッシュされており、メモリから高速で実行されます。

PHP-FPMを実行する私の特定のケースでは、これによりその負荷が軽減されます。

Memcached

(2つのphpモジュールの違いを無視し、この目的のために同じものとして扱います)

これにより、DBオブジェクトがキャッシュされ、RAMに格納されます。次に、drupalが同じデータベースオブジェクトを呼び出す必要がある場合、すべての情報はそこにあり、データベースに移動する必要はありません。

MySQLを実行している私の特定のケースでは、これによりその負荷が軽減されます。

Drupalキャッシュビン

Drupalキャッシングについてのスタック交換とAPCとmemcachedについて言及しているキャッシュビンの両方について、Stack Exchangeにはたくさんの質問があります:

このため、この分野で非常に有益な質問のいくつかは、Memcachedを使用することをお勧めします。他のいくつかの質問では、両方を導入することに大きな違いはないと述べています。

しかし、私はこれがどのように機能するか理解していません。それらは完全に異なるものをキャッシュしていませんか?

よく使われるビューがあるとします。 memcachedはビューに表示されているDBオブジェクトをキャッシュしておらず、APCはそれらを呼び出すモジュールコードをキャッシュしていますか?

Drupalキャッシュビンごとに1つのキャッシュしか使用できないので、DBオブジェクトまたはPHPコードをキャッシュすることを選択でき、実際にはほとんどの場合Drupalキャッシュビンは、2つの間のパフォーマンスの違いがほとんどないか、大きすぎてすべてをキャッシュできないPHPなので、DBオブジェクトのキャッシュが唯一の合理的なオプションですか?

(したがって、ほとんどの人がmemcacheをデフォルトのキャッシュビンオプションとして提案する理由、つまり$conf['cache_default_class'] = 'MemCacheDrupal';

7
Dominic Woodman

APC
他のサーバーとキャッシュを共有しませんが、より高速です。

Memcached
他のサーバーと共有でき、速度が遅くなります。

同じDrupalサイトに対して2つ以上のWebサーバー(Apache/nginx)がある場合は、Memcachedが必要です。単一のマシンで実行している場合は、APCuが最も高速です。何があったとしても OPcache をオンにする必要があります。

LCache は、2つ以上のWebサーバー環境でAPCuを使用する際の問題を修正するために設計されたモジュールです。

2
mikeytown2

APCとmemcacheの主な違いを確認する。 apcとmemcacheのインストール方法。この投稿を参照できます。 http://www.phpwala.com/php/difference-between-apc-and-memcache-php/2016/02

本当に役に立ちました。ありがとう

0
Rayan wayne