OS

memcached 설치 및 설정

by LionHeart posted Aug 16, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

memcache는 php를 사용할때 대용량 서비스를 위하여 메모리상에 캐쉬를 저장해두고 이를 php코드상에서 사용할 수 있도록 해주는 extension이다

 

pecl.php.net에 등록되어 있는걸로 봐서는 아마도 많이 쓰는 듯하다.

 

이를 호스팅 서버에 적용하기 위해 시도했던 방법들을 정리하여 본다.

 

memcache는 크게 4가지 작업이 필요하다.

 

1. php 컴파일 ==> memcache 추가

2. memcached 데몬 설치

3. php.ini 추가

4. 소스 코드 변경

 

가장 애매한 부분이 1번이다. pecl을 사용할 경우에 한번에 되면 좋지만 그렇지가 않다.

 

1. php 컴파일

 

호스팅 서버에 적용하기 위해서 memcache를 pecl로설치하려고 해보았으나 라이브러리 버전이 맞지 않아 정상적으로 동작하지 않았다. 할 수 없이 php 소스코드에 포함하여 같이 컴파일 하는 방식으로 처리하였다.

 다음과 같은 방식으로 처리가 가능하다

 

1) php 소스 함축 해제 

 --> 최신 소스를 php.net에서 다운 받아서 압축해제

2) memcache 소스 다운로드

--> pecl.php.net에 가면 다운받을 수 있다.

3) memcache 소스 복사

--> memcache소스를 다운받아 압축을 해제하면 memcache-2.4.5가 생기는데 이걸

php소스의 디렉토리 하위의 ext 디렉토리에 memcache로 복사

4) configure 재성성

--> memcacache를 같이 컴파일 하기 위해서 기존 configure 파일 삭제

--> php 디렉토리에 보면 buildconf 파일이 있다.   ./buildconf --force를 실행하면  memcache를 포함하여 컴파일 할 수 있는 configure 파일이 생성됨

--> buildconf 실행시 configure 파일을 삭제하지 않고 실행하면 오류가 나면서 buildconf가 실행되지 않는다==> 주의

5) configure 실행

--> ./configure --prefix=/usr/local/php --with-mysql --with-pgsql --with-iconv --enable-sockets --enable-memcacahe ==> 입맛에 많게 옵션 조정

--> enable-memcache는 buildconf를 이용하여 configure를 생성해야만 추가가 가능함, default 옵션이 아님

 

2. memcached 데몬 설치

- php 컴파일과는 달리 memcached는 설치가 쉽다. 다음과 같이 설치가 가능하다.

1) memcached 다운로드

--> 구글에서 지원하고 있는 모양이다. http://code.google.com/p/memcached/downloads/list 에서 다운로드 가능하다.

2) 압축해제

--> tar xvzf memcached-1.4.5.tar.gz

--> cd memcached-1.4.5

3) configure 실행

--> ./configure --prefix=/usr/local/memcached --enable-64bit ==> 64bit 서버일 경우

4) compile

--> make ; make install

5) 실행

--> prefix에서 설정한 /usr/local/memcached로 가보면 bin, include, share가 생성됨

--> bin디렉토리에서 memcache를 다음과 같이 실행하면 작동 완료

./memcached -vv -d -m 500 -u root -p 11211

--> 위에서 옵션들은 memcached -h를 하면 상세히 볼 수 있다..

 

3. php.ini 추가

- 마지막 부분에 다음 내용 추가

[memcache]

extension=memcache.so
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211

 

4. 소스코드 예제

<?

$memcache = new Memcache;

 

//memcached데몬에 연결

$memcache->connect('localhost', 11211) or die ("Could not connect");

 

//버전을 구함

$version = $memcache->getVersion();

 

$list=array('1','2','3');

 

//memcache 설정

//3600은 초단위를 의미 ==> 1시간

$memcache->set('key', $list, false, 3600) or die ("Failed to save data at the server");

 

//'key'로 정의된 값을 구함

$ tmparr= $memcache->get('key');

 

print_r($tmparr);


 

?>

[출처] memcached 설치 및 설정|작성자



Articles

3 4 5 6 7 8 9 10 11 12