>  기사  >  백엔드 개발  >  PHP는 어떻게 메모리를 캐시로 사용합니까?

PHP는 어떻게 메모리를 캐시로 사용합니까?

*文
*文원래의
2017-12-25 13:44:545423검색

이 글에서는 주로 PHP가 캐시 구현 방법으로 메모리를 사용하는 방법을 소개하고 Memcached 캐시의 사용량을 분석하며 APC, EC 및 Zend 가속기의 사용량을 비교합니다.

자세한 내용은 다음과 같습니다.

PHP의 캐시는 메모리 캐시, 파일 캐시, 페이지 캐시 등 여러 유형으로 구분됩니다. 이번 글에서는 PHP에서 메모리 캐싱을 하는 몇 가지 방법에 대해 이야기해보겠습니다. 여기서는 Memcached 캐시와 PHP에 포함된 APC 캐싱 방법을 소개하겠습니다.

1.Memcached 캐싱.

memcached는 데이터베이스 쿼리 결과를 캐시하고 데이터베이스 액세스 횟수를 줄여 동적 웹 애플리케이션의 속도를 향상시키는 고성능 분산 메모리 캐시 서버입니다. 이는 호스트의 여러 사용자가 동시에 이 캐시 시스템에 액세스할 수 있도록 하며 일반적으로 대규모 웹사이트에 사용됩니다. Memcached는 데이터를 캐시하기 위해 메모리를 사용하므로 서버가 다시 시작되거나 memcached 프로세스가 종료되면 휘발성이 있습니다. 데이터가 손실되므로 memcached를 사용할 수 없습니다.

php_memcache를 사용해 본 사람이라면 누구나 PHP 메모리 캐싱이 매우 복잡하다고 생각할 것입니다. 실제로 memcached는 주로 효율적이고 빠른 분산 메모리 개체 캐싱 시스템입니다.

여기서는 WIN32에서 memcached의 구성 및 사용을 소개합니다.

1. PHP 메모리 캐시 구성, WIN32 환경

1 압축된 패키지를 다운로드합니다: php_memcache. rar

php_memcache.rar 압축 패키지 포함된 파일은 다음과 같습니다:

/memcached-1.2.1-win32/memcached.exe

/php_memcache/php_memcache.dll

2 명령 프롬프트를 열고 memcached가 있는 경로를 가리킵니다. .exe를 찾아서 memcached.exe -d start를 실행합니다.

3. php_memcache.dll 파일을 PHP의 동적 파일 라이브러리 폴더에 복사하세요.

4. php.ini 파일에 Extension=php_memcache.dll 줄을 추가합니다.

5. Apache를 다시 시작한 후 phpinfo를 확인하세요. memcache가 있으면 설치가 성공한 것입니다!

예시 코드는 다음과 같습니다.

<?php 
//包含 memcached 类文件 
require_once(&#39;memcached-client.php&#39;); 
 
//选项设置 
$options = array( 
 &#39;servers&#39; => array(&#39;www.jb51.net:11211&#39;),//memcached 服务的地址、端口 
 &#39;debug&#39; => true,//是否打开debug 
 &#39;compress_threshold&#39; => 10240,//超过多少字节的数据时进行压缩 
 &#39;persistant&#39; => false//是否使用持久连接 
 ); 
 
//实例化memcached对象 
$memcached = new memcached($options); 
 
$sql = &#39;SELECT * FROM table1&#39;; 
$key = md5($sql); 
 
//如果在memcached中没有缓存数据,把缓存数据写入memcached 
if(!($datas = $memcached->get($key))) 
{ 
 $conn = mysql_connect(&#39;localhost&#39;, &#39;hxsd&#39;, &#39;123456&#39;); 
 mysql_select_db(&#39;hxsd&#39;); 
 $result = mysql_query($sql); 
 while($row = mysql_fetch_object($result)) 
 { 
  $datas[] = $row; 
 } 
 //将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。 
 $memcached->add($key, $datas); 
} 
else 
{ 
 //直接使用memcached中的缓存数据$datas 
} 
?>

메모리 캐시 2개, APC, EC, Zend accelerator의 비교


1, APC

APC, 정식 명칭은 Alternative PHP Cache, 공식 번역은 이라고 합니다. "Optional PHP Cache", 홈페이지는 http://pecl.php.net/package/apc, PHP 도움말 매뉴얼 페이지는 http://cn.php.net/apc

APC가 최적화 프로그램입니다. 설치 당일부터 백그라운드에서 자동으로 수행됩니다. 모든 PHP 코드는 php opcode를 대상으로 캐시됩니다.

또한 APC는 특정 메모리 캐싱 기능을 제공할 수 있습니다. APC를 자주 사용하면 캐시의 쓰기 기능이 예상치 못한 오류를 발생시킨다는 보고가 있습니다. 이 기능을 사용하려면 apc_fetch, apc_store 및 apc 캐시와 관련된 기타 기능을 살펴보세요. , 코드는 다음과 같습니다:

# pecl install APC

구성: /etc/ php.inc, 코드는 다음과 같습니다:

extension=apc.so

[apc]

apc.enabled = 1 
apc.shm_segments = 1 
apc.shm_size = 30 
apc.optimization = 0 
apc.ttl = 7200 
apc.user_ttl = 7200 
apc.num_files_hint = 1000 
apc.mmap_file_mask = /tmp/apc.XXXXXX

관련 권장 사항:

WeChat 공개의 PHP memcache 응용 프로그램 예 플랫폼

PHP 캐싱 메커니즘

PHP 캐싱 기술 예제_PHP 튜토리얼

위 내용은 PHP는 어떻게 메모리를 캐시로 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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