root@wl ~ # wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz root@wl ~ # tar xvfz libevent-1.4.13-stable.tar.gz root@wl ~ # cd libevent-1.4.13-stable root@wl ~/libevent-1.4.13-stable # ./configure root@wl ~/libevent-1.4.13-stable # make root@wl ~/libevent-1.4.13-stable # make install
root@wl ~ # wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz root@wl ~ # tar xvfz memcached-1.4.5.tar.gz root@wl ~/memcached-1.4.5 # cd memcached-1.4.5 root@wl ~/memcached-1.4.5 # ./configure --enable-dtrace root@wl ~/memcached-1.4.5 # make root@wl ~/memcached-1.4.5 # make install
root@wl ~ # wget http://launchpad.net/libmemcached/1.0/0.39/+download/libmemcached-0.39.tar.gz root@wl ~ # tar xvfz libmemcached-0.39.tar.gz root@wl ~ # cd libmemcached-0.39 root@wl ~/libmemcached-0.39 # ./configure --with-memcached --disable-64bit ... Configuration summary for libmemcached version 0.39 ... root@wl ~/libmemcached-0.39 # /usr/sfw/bin/gmake root@wl ~/libmemcached-0.39 # /usr/sfw/bin/gmake install
root@wl ~ # memcached -h 1) memcached 1.4.5 -p <num> TCP 포트 번호 (기본값: 11211) -U <num> UDP 포트 번호 (기본값: 11211, 0 인경우 사용안함) -s <file> UNIX 소켓 경로 (네트워크 지원 안함) -d 데몬으로 실행 -u <username> 전환할 사용자 이름(루트로 실행시) -m <num> 최대 메모리(MB단위, 기본값: 64) -c <num> 최대 접속 개수 (기본값: 1024) -P <file> PID 파일 저장 위치. -d 옵션 사용시 사용 -f <factor> 증가 팩터값. (기본값: 1.25) -n <bytes> 키+값+플래그 를 저장할 최소 단위(기본값: 48) -L large memory pages 사용(가능한경우) -t <num> 사용할 쓰레드 개수 (기본값: 4) ... root@wl ~ # memcached -u windy -d -m 64 -p 11211 -P /tmp/memcached.pid root@wl ~ # telnet localhost 11211 2) Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. stats settings STAT maxbytes 67108864 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 11211 STAT inter NULL STAT verbosity 0 STAT oldest 0 STAT evictions on STAT domain_socket NULL STAT umask 700 STAT growth_factor 1.25 STAT chunk_size 48 STAT num_threads 4 STAT stat_key_prefix : STAT detail_enabled no STAT reqs_per_event 20 STAT cas_enabled yes STAT tcp_backlog 1024 STAT binding_protocol auto-negotiate STAT auth_enabled_sasl no STAT item_size_max 1048576 END ^] telnet> ^D Connection to localhost closed. root@wl ~ #1) 도움말. memcached는 별도의 설정 파일이 없다. 대형 사이트의 경우 도움말을 참조해 메모리 사용에 대한 최적화가 필요할 것이다.
root@wl ~/phpmemcached # /usr/local/php/bin/pecl download memcached root@wl ~/phpmemcached # cd memcached-1.0.1 root@wl ~/phpmemcached/memcached-1.0.1 # /usr/local/php/bin/phpize root@wl ~/phpmemcached/memcached-1.0.1 # CFLAGS="-xc99" ./configure --with-php-config=/usr/local/php/bin/php-config root@wl ~/phpmemcached/memcached-1.0.1 # make root@wl ~/phpmemcached/memcached-1.0.1 # cp memcached-api.php /usr/local/php/lib/php root@wl ~/phpmemcached/memcached-1.0.1 # cp ./modules/memcached.so /usr/local/php/lib/php/extensionsphp.ini 를 수정해야 한다. 윈디하나의 솔라나라: SAMP의 [PHP 설정]를 참조해 extension_dir 을 설정하고 아래와 같이 extension 을 추가해야 한다.
root@wl ~ # vi /usr/local/php/lib/php.ini extension=memcached.so웹 서버를 재시작 한 후, phpinfo() 에 memcached 가 나와야 하며, session handler 에 memcached 가 표시 되어야 한다.

<pre>
<?
function memcached_callback($memc, $item)
{
print_r($item);
}
$memcached = new Memcached;
$memcached->addServer("localhost", 11211);
// print_r($memcached->getStats()); 패치 필요할듯. 코어 덤프난다.
$items = array(
'k1' => 'v1',
'k2' => 'v2',
'k3' => 'v3'
);
$memcached->setMulti($items);
$memcached->getDelayed(array('k1', 'k3'), true, 'memcached_callback');
?>
</pre>
아래와 같이 출력되어야 한다.
Array
(
[key] => k1
[value] => v1
[cas] => 0
)
Array
(
[key] => k3
[value] => v3
[cas] => 0
)
root@wl ~ # vi /usr/local/php/lib/php.ini session.save_handler = memcached session.save_path = "127.0.0.1:11211"
|
|
Copyright © 2004-2010 Jo HoSeok. All rights reserved. |