これら2つの製品の使用方法を理解するには、これら2つの製品の明確な区別を理解する必要があります。
- APCはOPCodeキャッシュであり、高速バックエンドの
- Memcacheは単なる高速バックエンドです
APCをOPCodeキャッシュとして使用する
サーバーにモジュールをインストールするだけです
pecl install apc
そして、あなたの中でそれを有効にします php.ini
echo "extension=apc.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=apc.so" >> /etc/php5/conf.d/20apc.ini (Debian)
次に、適切なランタイム構成を有効にして微調整します。
apc.enabled
apc.shm_segments
apc.shm_size
apc.optimization
apc.num_files_hint
apc.user_entries_hint
apc.ttl
apc.user_ttl
...
次に、PHP / Apacheを再起動します
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
その後、他に行うことはありません。APCがクイックで有効になっていることを確認しphpinfo()
ます-それ以外の場合、この時点では、APCのOPCodeキャッシュ部分はアクティブです。
Magento側で設定する必要はありません。
APCを高速バックエンドとして使用する
以下を追加する必要があります ./app/etc/local.xml
<global>
...
<cache>
<backend>apc</backend>
<prefix>mystore_</prefix>
</cache>
...
</global>
次に、既存のストアキャッシュをフラッシュします。動作していることを確認するには、フロントエンドでページをロードすると、./var/cache
ディレクトリが空のままになります。
Memcacheを高速バックエンドとして使用する
MemcacheをPHP拡張機能としてインストールし、それぞれのMemcache Daemon(Memcached)をサーバーにインストールする必要があります。
pecl install memcache
php.iniで有効にします
echo "extension=memcache.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=memcache.so" >> /etc/php5/conf.d/20memcache.ini (Debian)
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
次に、Memcachedをサーバーにインストールします。RH / Centosの場合、リリースバージョンとCPUアーキテクチャに合わせてURLを調整します。
rpm -Uhv http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum --enablerepo=rpmforge install memcached
apt-get install memcached (Debian)
次に、Magentoを修正してMemcacheを高速バックエンドとして使用し、ソケットパスをTCP / IP接続に合わせて変更します。
<cache>
<slow_backend>database</slow_backend>
<fast_backend>memcached</fast_backend>
<fast_backend_options>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</fast_backend_options>
<backend>memcached</backend>
<memcached>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</cache>
Memcacheとタグ付けの注意点- 保存するもの
Memcacheは単一レベルのキーと値の関係のみをサポートするため、Magentoキャッシュタグ(キャッシュデータを個別にフラッシュするために使用される)を保存できません。その結果、slow_backend
キャッシュコンテンツタグの関係を維持するためにを指定するか、まったく定義しないでください。
を定義するslow_backend
と、キャッシュタグが大きくなりすぎてパフォーマンスが低下するリスクがあります。各サーバーが独自のキャッシュタグを保持している場合、複数のサーバーにまたがってスケールできないという固有の問題もあります。
そのため、Memcacheを使用する場合のより良いアプローチ(注意点として、キャッシュを個別にフラッシュすることはできません)は、slow_backend
です。
その場合、それを削除<slow_backend>database</slow_backend>
して置き換えることをお勧めします:
<slow_backend>Memcached</slow_backend>
<slow_backend_options>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</slow_backend_options>
これにより、キャッシングの第2レベルが中断/無効になります(タグの保存が防止されます)が、Memcacheのパフォーマンスは引き続き許可されます。
どちらを使用するか
単一サーバー展開の場合 -すべてにAPCを使用するだけで害はありません。
分散セットアップの場合 -Memcacheを高速バックエンドとして使用する必要があります(すべてのマシンが共通ストアにアクセスできるようにするため)。
さらに心配なのは、ホスティングプロバイダーが使用するための適切な設定を教えてくれない場合、間違いなくホストが間違っているということです。
属性:sonassi.com、php.net、repoforge.org