163

私はこの記事を読みました: http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/昔から..アプリケーションが本当に高速になるように、利用可能な最高のキャッシュ エンジンを取得したいと考えています。もちろん、過剰なキャッシュはしたくありませんが、少なくとも最善のものを選択したいと考えています。その記事では、Memcached は遅く、apc は速いと書かれているのに、なぜみんなmemcachedを選ぶのでしょうか?

http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevelsここでは、「Apc、Memcache などの高速なもの (ただし制限付き) を使用する」と述べています。 File、Sqlite のような「遅い」もの..." Apc を高速として使用し、Memcache を低速として使用することは良い考えだと思いますか?

4

7 に答える 7

274

Memcached は分散キャッシング システムですが、APC は非分散であり、主にオペコード キャッシュです。

異なる Web サーバー (負荷分散) に存在する必要がある Web アプリケーションがある場合 (およびその場合にのみ)、分散キャッシングに memcache を使用する必要があります。そうでない場合は、APC とそのキャッシュに固執してください。

APC であるオペコード キャッシュを常に使用する必要があります (APC は php6 iirc に統合されるため、今すぐ使用を開始してください)。

両方を異なる目的に使用できます/使用する必要があります。

于 2009-05-02T15:33:50.640 に答える
44

複数の Web サーバー間で状態を保持する必要がある場合 (負荷が分散されていて、キャッシュ内の内容がすべてのサーバーで同じであることが重要な場合) は Memcached。

(または各)サーバーで読み取り(および書き込み)するためにクイックメモリにアクセスする必要がある場合は、APC。

APC は、スクリプトの実行時間をコンパイルして高速化することもできます。したがって、たとえば、キャッシュ ストレージに memcached を使用しながら、実行パフォーマンスを向上させるために APC を使用することができます。

于 2009-05-02T15:33:44.837 に答える
9

1つは速度のために、もう1つはすべてのサーバーを同期するために使用します。memcacheを使用する場合は、iptablesでブロックする必要がある開いているポートに注意してください。

于 2012-03-22T00:32:15.700 に答える
6

Thomaschaaf さん、このツールが遅れていないことを願っていますが、APC には「ユーザーキャッシュ」に関連するいくつかの問題があることに注意してください。簡単に言うと、キャッシュ エントリにタイムアウトを設定した場合、または内部 APC コード内で apache がクラッシュした場合 (タイムアウトなど)、いくつかの問題が発生する可能性があります。

ここに問題に関するエントリがあります: http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-apache.html 。 info/blog/php/user-cache-timebomb.html (私が思う APC 開発者の 1 人から)

于 2009-08-04T07:39:08.147 に答える
1

何をしているかにもよりますが、VPS で実行されている私の drupal Web サイトでは、APC がうまく機能することがわかりました。CentOS 6 を実行している場合は、yum アップデートとして利用できるため、インストールが非常に簡単で、デフォルトが妥当であるため、構成は必要ありません。簡単なことではありません。

于 2013-03-02T19:45:43.463 に答える
1

APC はコード キャッシュであり、 memcache のように機能するため、APC のみを使用します。2 つではなく 1 つの構成ファイルのみ。

そして、両方のキャッシュを監視する場所は 1 か所だけです.....

于 2012-04-21T12:37:35.050 に答える