이 기사는 일반적인 PHP 캐싱 기술을 탐구합니다 : Zend Opcache, 헤더가 만료 및 MySQL 쿼리 캐싱. 우리는 후속 기사에서 추가 전략을 탐구 할 것입니다.
주요 장점 :
Zend Opcache, 헤더가 만료되고 MySQL 쿼리 캐싱 요청 라이프 사이클을 간소화하여 PHP 응용 속도를 크게 향상시킵니다.
PHP 5.5에 사전 설치 한 Zend Opcache는 공유 메모리에서 사전 컴파일 된 바이트 코드를 저장하여 반복 된 스크립트 구문 분석 및 컴파일을 피합니다.
가 만료 된 헤더 (APACHE/NGINX) 정적 자산 (이미지, CSS, JavaScript)에 대한 브라우저 캐싱, 서버로드 감소 및 성능 향상.
MySQL 쿼리 캐싱 스토어 스토어 스토어 스토어 스토어 스토어 및 결과는 후속 동일한 쿼리를 가속화하고 데이터베이스 압력을 줄입니다.
PHP 요청 라이프 사이클 이해 :
캐싱으로 뛰어 들기 전에 PHP 요청 프로세스를 검토합시다.
파일 검색 : PHP 파일이 서버 파일 시스템에서 가져 왔습니다.
어휘 분석 : 코드는 구문 분석을 위해 토큰으로 변환됩니다.
<:> 파싱 : 코드는 구문 오류에 대해 확인됩니다
opcode 생성 : 토큰은 실행 가능한 기계 코드로 변환됩니다
실행 : 기계 코드가 실행됩니다
캐싱 기술은 2-4 단계를 우회하여 성능을 최적화하고 자원 소비를 최소화하고 응답 시간을 개선합니다.
Zend Opcache : -
Zend Opcache는 PHP 5.5 이상에 쉽게 이용 가능한 성능 향상제입니다. ( "Zend Opcache"를 확인) 또는 를 사용하여 설치를 확인하십시오.
enabling opcache : -
파일을 편집하고 무관심 를 다시 시작하십시오.
5.5 이전의 PHP 버전의 경우 를 사용하여 PECL을 사용하여 설치하십시오.
opcache 구성 (
또는 ) : -
<:> 키 설정 :
: 공유 메모리 크기 (MB). 서버 리소스 및 애플리케이션 요구에 따라 조정하십시오
: 인턴 끈에 대한 메모리 (MB). -
: 캐시 된 파일의 최대 수.
: 파일 변경을 확인하는 주파수 (초) (항상 확인의 경우 0, 개발에 이상적).
: 캐싱 (bytes)에서 큰 파일을 제외합니다
: 속도를 높이십시오 (1로 설정)
Opcache의 상태와 성능을 모니터하려면 및 를 사용하십시오.
는 헤더를 만료합니다 (Apache) :
Apache의 모듈은 정적 자산의 브라우저 캐싱을 가능하게합니다. 다음을 사용하여 활성화하십시오
Apache 가상 호스트 구성에서 만료 규칙 구성 :
(nginx 구성에 대한 nginx 문서를 참조하십시오.)
mod_expires
MySQL 쿼리 캐싱 :
가 무거운 응용 프로그램의 경우 MySQL의 쿼리 캐시는 성능을 크게 향상시킬 수 있습니다. MySQL 버전을 확인하십시오 (sudo a2enmod expires
sudo service apache2 restart
(예 : )에서 활성화하십시오.
서버의 용량 및 업데이트 주파수에 따라 설정을 조정하십시오.
<code class="language-apache"><ifmodule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 day"
ExpiresByType image/png "access plus 10 days"
ExpiresByType text/css "access plus 25 days"
</ifmodule></code>
쿼리 캐시 고려 사항 :
는 쿼리는 캐시 히트의 경우 동일해야합니다
결정 쿼리 만 캐시 가능합니다
테이블 업데이트는 캐시를 무효화합니다
결론 :
이 기사는 기본 PHP 캐싱 전략을 소개했습니다. Part 2는 Varnish, Memcached 및 PHP 캐싱 라이브러리와 같은 고급 기술을 탐색합니다.
자주 묻는 질문 (FAQS) : (이것은 이미 본문 내에서 답변이 있으므로 여기에서 반복 할 필요가 없습니다.) .
위 내용은 캐싱 해트트릭 : Zend Opcache, Etags 및 Query Caching의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!