>  기사  >  백엔드 개발  >  PHP apc 캐시 및 redis와의 비교

PHP apc 캐시 및 redis와의 비교

WBOY
WBOY원래의
2016-08-08 09:19:381439검색
APC 소개APC의 전체 이름은 Alternative PHP Cache이며, 이는 PHP 코드 또는 사용자 데이터를 캐시하는 데 사용되는 오픈 소스 PHP 플러그인입니다. APC PHP 코드 캐싱 apc는 ​​PHP 동적 구문 분석 및 컴파일 시간을 제거하고 PHP 스크립트를 더 빠르게 실행할 수 있습니다. 아래 그림은 apc가 PHP 스크립트를 더 빠르게 실행할 수 있는 이유를 잘 보여줍니다.
PHP는 동적 스크립트 언어이므로 사용자가 브라우저에서 페이지 콘텐츠를 보려면 서버에서 php 코드를 사용하여 사용하려는 html 코드를 생성합니다. 위 그림에서 볼 수 있듯이 APC가 없는 경우 사용자가 PHP 페이지를 요청할 때마다 서버는 PHP를 구문 분석하고 컴파일하고 실행해야 합니다. 그러나 PHP 코드가 변경되지 않는 한 여러 번 PHP의 실행 로직은 변경되지 않습니다. 즉, 구문 분석 및 컴파일 과정을 생략할 수 있으며, 직접 실행하고 결과를 반환하면 됩니다. 이것이 APC의 임무입니다. APC는 PHP의 실행 코드를 캐시하여 구문 분석 및 컴파일 프로세스를 제거하고 PHP 스크립트 실행 속도를 높입니다. APC 사용자 데이터 캐싱 및 apc는 PHP 코드 캐싱 외에도 사용자 데이터도 캐싱할 수 있습니다. 하지만 apc의 용량이 매우 작기 때문에 오랫동안 변하지 않는 데이터를 캐싱하는 것이 가장 좋습니다. . 데이터의 경우 상수 단위는 일수여야 합니다. 따라서 데이터가 자주 변경되고 데이터 양이 상대적으로 많으면 apc를 사용하지 마십시오. memcache 또는 redis를 사용할 수 있습니다. 다음은 apc와 redis의 효율성 비교를 알아보기 위해 apc와 redis의 비교 테스트 실험입니다.
function getTimeStamp() {
  $timestr = microtime();
  $timestrary = explode(' ', $timestr);
  $result = intval($timestrary[1])*1000 + intval(floatval($timestrary[0])*1000);
  return $result;
} 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key = 'key';
$value ='value';
$redis->set($key, $value);
  
apc_store($key, $value, 1); 
  
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
  $result = apc_fetch($key);
} 
$cost = getTimeStamp() - $begin;
var_dump($cost);
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
  $result = $redis->get($key);
} 
$cost = getTimeStamp() - $begin;
var_dump($cost);
$redis->close();
  

은 모두 밀리초 단위로 각각 100,000회 수행되는 간단한 데이터 검색 작업입니다. 최종 실행 결과는 redis가 4~5초 안에 100,000번을 읽는 반면, apc는 약 50밀리초 안에 100,000번을 읽는다는 것입니다. 일부 데이터를 단순히 캐시하고 데이터가 변경되지 않고 적중하는 경우에도 apc는 여전히 특정 효율성 향상을 가져올 수 있음을 알 수 있습니다. apc를 설치하면 apc 조회수를 볼 수 있는 apc.php 페이지가 나타납니다. 아래와 같이
APC 구성 구성 예는 다음과 같습니다.
extension= apc.so 
apc.enabled=1
apc.shm_segments=1 
apc.shm_size=64M ; apc内存的大小,最后的大小需要乘上segments的数量,所以这里一共为apc分配64M 
apc.ttl=7200 
apc.user_ttl=7200
apc.enable_cli=1 ; 这个如果不开启,则只可以在网页上进行apc操作,不能通过cli进行apc操作

참조http://www.inmotionhosting.com/support/website/what-is/speed-up-php-with-apc http://bbs.phpchina . com/thread-202432-1-1.html

저작권: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위 내용을 포함해 PHP apc 캐시와 redis와의 비교를 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:log4php 설치다음 기사:log4php 설치