사용 방법을 이해하려면이 두 제품의 명확한 차이점을 이해해야합니다.
- APC는 OPCode 캐시 및 빠른 백엔드입니다
- Memcache는 빠른 백엔드입니다
OPPC 캐시로 APC 사용
서버에 간단히 모듈을 설치하십시오
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 캐시 부분이 활성화됩니다.
마 젠토 측에서는 아무것도 구성 할 필요가 없습니다.
APC를 빠른 백엔드로 사용
당신은에 다음을 추가해야합니다 ./app/etc/local.xml
<global>
...
<cache>
<backend>apc</backend>
<prefix>mystore_</prefix>
</cache>
...
</global>
그런 다음 기존 저장소 캐시를 비 웁니다. 작동하는지 확인하려면 프런트 엔드에 페이지를로드하면 ./var/cache
디렉토리가 비어 있어야합니다.
Memcache를 빠른 백엔드로 사용
Memcache를 PHP 확장으로 설치하고 각각의 Memcache 데몬 (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)
그런 다음 Memcache를 빠른 백엔드로 사용하도록 Magento를 수정하고 소켓 경로를 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>
이렇게하면 두 번째 수준의 캐싱이 중단 / 비활성화되지만 태그 저장은 방지되지만 여전히 Memcache의 성능은 허용됩니다.
사용할 것
단일 서버 배포 인 경우 모든 것에 APC를 사용하는 것만으로도 해가 없습니다.
분산 설정 인 경우 Memcache를 빠른 백엔드로 사용해야합니다 (모든 머신이 공통 저장소에 액세스 할 수 있도록).
더 많은 문제는 호스팅 제공 업체가 올바른 설정을 할 수 없다면 호스트가 잘못되었다는 것입니다.
기여 : sonassi.com , php.net , repoforge.org