说明:memcache配置是在debian 6.0.1环境下编译安装部署。

 

 

一、知识背景
 
1.1、memcache介绍
 
memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
 
1.2、memcached和memcache的区别
 
memcache是这个项目的名称,而memcached是它服务器端的主程序文件名,一个是项目名称,一个是主程序文件名。
 
memcache安装分为memcached服务器端的安装和memcache客户端的安装.
服务器端安装就是在服务器安装memcache;
客户端安装其实就是php扩展安装,需要下载memcache包。
 
http://pecl.php.net/package/memcache 下载地址
 
 
 
二、软件部署
 
所需软件
 
libevent-2.0.10-stable.tar.gz
memcache-3.0.6.tgz
memcached-1.4.5.tar.gz
 
 
 
2.1、安装libevent
 Memcache用到了libevent这个库用于Socket的处理
 
tar -xzvf libevent.tar.gz
cd libevent
./configure --prefix=/usr/local/libevent
make
make install
 
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5
 
验证libevent
 
root@test3:/usr/local# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root        21 Apr 6 14:29 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3
-rw-r--r--     1 root root     104960 Nov 21 2009 libevent-1.4.so.2.1.3
lrwxrwxrwx 1 root root 41 Apr 19 13:55 libevent-2.0.so.5 -> /usr/local/libevent/lib/libevent-2.0.so.5
 
 
 
2.2、安装memcached
./configure --with-libevent=/usr/local/libevent
make
make install
安装完成后会把memcached放到 /usr/local/bin/memcached
 
验证memcached
 
root@test3:/usr/local# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root staff 246122 Apr 19 13:42 /usr/local/bin/memcached
 
2.3、安装memcache的php扩展
 
/usr/local/php5/bin/phpize
./configure --enable-memcache --with-php-config=/usr/local/php5/bin/php-config --with-zlib-dir
make
make install
 
说明:
安装完成后会有如下字样:
   Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-xxxxxxx/
 
2.4、php扩展配置
 
  把php.ini中的extension_dir = “./”修改为
    extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-xxxxxxxx/”
   在php.ini中添加一行来载入memcache扩展:extension=memcache.so
 
 
 
 
 
三、memcache 基本配置
3.1、启动Memcache的服务器端
 
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.22.200 -p 12000 -c 256 -P /tmp/memcached.pid

    -d选项是启动一个守护进程,
    -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
    -u是运行Memcache的用户,我这里是root,
    -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.22.200,
    -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
    -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
    -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
 
3.2、结束memcache进程
 
kill -9 $(cat /tmp/memcached.pid)
3.3、memcache 测试代码
  将代码写入index.php ,然后重启apache。
$mem = new Memcache;
$mem -> connect("192.168.1.233",12000);
$mem -> set('key','this is a test',0,60);
$val = $mem -> get('key');
echo $val ;
?>