memcache와memcached의 차이 및 사용 방법

시작/종료memcached-d-m 10 -u root-l 192.168.0.122-p 11200-c 256-P/tmp/memcached.pid-d 옵션은 수호 프로세스를 시작합니다. -m는 Memcache에 할당된 메모리 수량입니다. 단위는 MB입니다. 여기는 10MB-u는 Memcache를 실행하는 사용자입니다. 여기는 루트-l입니다. 감청하는 서버 IP 주소입니다. 만약에 여러 개의 주소가 있다면 서버의 IP 주소를 지정합니다. 192.168.0.122-p는 Memcache 감청을 설정하는 포트입니다. 여기는 12000입니다.가장 좋은 것은 1024 이상의 포트-c 옵션은 최대 실행 병렬 연결수입니다. 기본값은 1024입니다. 여기는 256을 설정했습니다. 서버의 부하량에 따라 설정합니다. -P는Memcache를 저장하는pid 파일kill`cat/tmp/memcached를 설정합니다.pid` 실행 상태 가져오기 echo stats | nc 192.168.1.1.123 11200watch "echo stats | nc 192.168.1.1.123 11200"(실시간 상태) 빠르게 echo "flush_all"비우기 | nc 192.168.1.123 11200
이 글을 쓰기 전에memcache,memcached에 대해 모호하고 알파벳 하나가 다르다는 것을 요약한다.
Memcache가 뭐예요?Memcache는 자유롭고 오픈 소스 코드, 고성능, 분배된 메모리 대상 캐시 시스템입니다.동적 웹 응용 프로그램을 가속화하고 데이터베이스 부하를 줄이는 데 사용됩니다.그것은 막히지 않는 네트워크 IO를 사용하여 임의의 여러 연결에 대응할 수 있다.그것의 작업 메커니즘은 메모리에 공간을 열어 Hash 테이블을 만드는 것이기 때문에Memcached는 자체적으로 이 Hash 테이블을 관리한다.Memcached는 간단하면서도 강력합니다.그것의 간단한 설계는 신속한 배치를 추진하고 직면한 문제를 발전시키기 쉬우며 많은 대형 데이터 캐시를 해결했다.그것의 API는 가장 유행하는 언어를 제공할 수 있다.Memcache 공식 홈페이지:http://memcached.org/
Memcached는 또 뭐야?Memcache는 이 시스템의 프로젝트 이름입니다. Memcached는 이 시스템의 메인 프로그램 파일(알파벳 d는daemon으로 이해할 수 있음)으로 수호 프로그램 방식으로 한 개 이상의 서버에서 실행되며 클라이언트의 연결 작업을 수시로 받아들여 공유 메모리로 데이터를 저장합니다.
memcache 클라이언트(php) PHP에는 두 개의memcache 클라이언트가 있습니다: phpmemcache와 phpmemcached.phpmemcache는 독립적으로 php로 실현되고 오래된 클라이언트입니다. 우리 실천에서 여러 가지 문제가 발견되었고 기능이 적으며 속성도 설정할 수 없습니다.http://pecl.php.net/package/memcachephpmemcached는 원생 c의libmemcached의 확장을 바탕으로 더욱 보완되고 phpmemcached로 교체하는 것을 권장합니다.http://pecl.php.net/package/memcached
memcached 설치 (서비스포트)
cd /root/lnmp/src/wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gztar xzf memcached-1.4.15.tar.gzcd memcached-1.4.15./configure --prefix=/usr/local/memcached   make && make installln -s /usr/local/memcached/bin/memcached /usr/bin/memcached/bin/cp scripts/memcached.sysv /etc/init.d/memcachedsed -i 's@^USER=.*@USER=root@'/etc/init.d/memcachedsed -i 's@chown@#chown@'/etc/init.d/memcachedsed -i 's@/var/run/memcached/memcached.pid@/var/run/memcached.pid@'/etc/init.d/memcachedsed -i 's@^prog=.*@prog="/usr/local/memcached/bin/memcached"@'/etc/init.d/memcached # , chmod +x /etc/init.d/memcachedchkconfig --add memcachedchkconfig memcached oncd ..

memcached 시작:
service memcached start  # memcached -p 11211-l 127.0.0.1-d -u root -P /var/run/memcached.pid -m 64M-c 1024

몇 가지 매개변수에 대한 설명:
  • -pmemcached 감청된 TCP 포트
  • -l가 감청한 IP 주소, 127.0.0.1은 본 컴퓨터입니다. 물론 당신의 서버 IP를 쓸 수 있습니다. 예를 들어:10.0.0.10, 이것은 제 서버의 IP 주소입니다. 만약에 여러 서버가 이memcached의 캐시 데이터를 읽을 수 있어야 한다면 이 IP를 설정해야 합니다
  • -d는 데몬 방식으로 실행되며 프로그램을 백그라운드에 넣습니다
  • -umemcached의 실행 사용자입니다. 제가 설정한 것은 nobody입니다
  • -Pmemcached의pid 파일 경로
  • -mmemcached에서 사용할 수 있는 최대 메모리 수량
  • -cmemcached가 동시에 받아들일 수 있는 최대 연결수

  • socket 방식으로memcached에 접근하기를 원한다면, 시작할 때 -l와 -p 파라미터를 제거하고 -s 파라미터를 추가해야 합니다.
  • -smemcached의 socket 파일 경로

  • php에서memcache 확장 구성 요소 설치:
    tar xzf memcache-2.2.7.tgzcd memcache-2.2.7/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make installcd ../

    내 환경에 따라 컴파일된memcache./usr/local/php/lib/php/extensions/no-debug-non-zts-201212/디렉터리에 자동으로 생성됩니다. 환경이 다르면 자신의 상황에 따라 php를 수정해야 합니다.미나야.
    이어서 해야 할 일은 php가 이 확장자를 불러와서 당신의 php를 편집하는 것입니다.ini, 아래와 같이 적절한 위치(일반적으로 마지막일 수도 있고 독립적인 ini 파일일 수도 있음)에 추가합니다.
    extension=memcache.so

    그리고 php나apache를 다시 켜서 phpinfo () 를 실행해서 확인해 보세요. 정상적이면 이걸 볼 수 있을 것 같아요:memcache
    php-memcache의 간단한 사용 예:
    <?php$memcache =newMemcache;   $memcache->connect('127.0.0.1','11211');   $memcache->setCompressThreshold(20000,0.2);//     echo $memcache->getVersion();//  memcached      $test = array(1,2,3,4,5,'abcde');//    if($memcache->get('test')){           print_r($memcache->get('test'));//            echo "
    "
    ;           echo 'cached';           echo "
    "
    ;}else{           $memcache->set('test',$test,0,30);//          echo 'no cache';           echo "
    "
    ;}?>

    php에서memcached 확장 구성 요소 설치(LNMP 원키 설치 패키지): 최신 ibmemcached-1.0.17.tar.gz가 오류를 보고할 수 있습니다:'HAVE_MEMCACHED_BINARY'was not declared in this scope 용 libmemcached-1.0.16.tar.gz는 다음과 같이 설치할 수 있습니다.
    wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gzwget http://pecl.php.net/get/memcached-2.1.0.tgztar xzf libmemcached-1.0.16.tar.gzcd libmemcached-1.0.16./configure --with-memcached=/usr/local/memcachedmake && make installcd ..tar xzf memcached-2.1.0.tgzcd memcached-2.1.0/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make install

    내 환경에 따라 컴파일된memcached./usr/local/php/lib/php/extensions/no-debug-non-zts-201212/디렉터리에 자동으로 생성됩니다. 환경이 다르면 자신의 상황에 따라 php를 수정해야 합니다.미나야.
    이어서 해야 할 일은 php가 이 확장자를 불러와서 당신의 php를 편집하는 것입니다.ini, 아래와 같이 적절한 위치(일반적으로 마지막일 수도 있고 독립적인 ini 파일일 수도 있음)에 추가합니다.
    extension=memcached.so

    그리고 php나apache를 다시 켜서 phpinfo () 를 실행해서 확인해 보세요. 정상적이면 이걸 볼 수 있을 거예요:memcached
    총괄: 사실은 매우 간단하다.memcache는 php의 확장자로php관리memcached(서비스단), php-memcache에 사용된다.dll.
    memcached(서비스포트)를 설치하고 확장을 설치하지 않으면 php가memcached를 조종할 수 없지만 명령줄을 사용하는 데 문제가 없습니다.
    PHPmemcache 클라이언트(phpmemcache와 phpmemcached)가 설치되어 있으면그러나memcached(서비스포트) 서비스가 설치되어 있지 않으면 사용할 수 없습니다
    memcached(서비스포트)와 PHPmemcache 클라이언트 확장을 동시에 설치해야만 동적 사이트 성능을 향상시킬 수 있습니다

    좋은 웹페이지 즐겨찾기