下载:http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,
官网:http://www.monkey.org/~provos/libevent/
下载:http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
官网:http://pecl.php.net/get/memcache-2.2.5.tgz
二、安装与配置
tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure –prefix=/usr
make
make install
ls -al /usr/lib | grep libevent
libevent-1.1a.so.1
libevent-1.1a.so.1.0.2
libevent-1.4.so.2
libevent-1.4.so.2.1.3
libevent.a
libevent_core-1.4.so.2
libevent_core-1.4.so.2.1.3
libevent_core.a
libevent_core.la
libevent_core.so
libevent_extra-1.4.so.2
libevent_extra-1.4.so.2.1.3
libevent_extra.a
libevent_extra.la
libevent_extra.so
libevent.la
libevent.so
tar zxvf memcached-1.4.4.tar.gz
cd memcached-1.4.4
./configure –with-libevent=/usr
make && make install
ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 201869 12-14 21:44 /usr/local/bin/memcached
tar vxzf memcache-2.2.5.tgz
cd memcache-2.2.5
/usr/local/webserver/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/webserver/php/bin/php-config –with-zlib-dir
make
make install
Installing shared extensions: /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/”
三、memcached的基本设置
memcached -d -m 10 -u root -l 202.207.177.177 -p 11211 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址202.207.177.177,
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
kill `cat /tmp/memcached.pid`
netstat -ant
tcp 0 0 202.207.177.177:11211 0.0.0.0:* LIST
reboot
四、Memcache环境测试
1
2
3
4
5
6
7
8
9 |
<?php $mem = new Memcache; $mem ->connect( "202.207.177.177" , 11211); $mem ->set( 'key' , 'This is a test!' , 0, 60); $val = $mem ->get( 'key' ); echo $val ; ?> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 |
<?php //MemCache服务器配置 //define('MEMCACHE_HOST', 'localhost'); //MemCache服务器主机 //define('MEMCACHE_PORT', 11211); //MemCache服务器端口 //define('MEMCACHE_TIMEOUT', 1); //S,MemCache服务器连接超时 class cache {
var $memcache ;
function __construct()
{
$this ->memcache = & new Memcache;
$this ->memcache->pconnect(MEMCACHE_HOST, MEMCACHE_PORT, MEMCACHE_TIMEOUT);
}
function cache()
{
$this ->__construct();
}
function get( $name )
{
return $this ->memcache->get( $name );
}
function set( $name , $value , $ttl = 0)
{
return $this ->memcache->set( $name , $value , 0, $ttl );
}
function rm( $name )
{
return $this ->memcache-> delete ( $name );
}
function clear()
{
return $this ->memcache-> flush ();
} } ?> |
五、参考资料
Linux下的Memcache安装:http://www.ccvita.com/257.html
Nginx 0.8.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器: http://blog.s135.com/nginx_php_v5/