参考:http://blog.bwphp.cn/?p=296


Magent代理服务器:192.168.1.6
Memcache服务器:192.168.1.7

Memcache服务器安装配置

首先:配置本地YUM源,挂载光驱,安装编译器

yum install gcc gcc-c++

1、编译安装libevent:

wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable/
mkdir /usr/local/libevent
./configure --prefix=/usr/local/libevent
make && make install

2、编译安装Memcached:

wget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz
tar zxvf memcached-1.2.6.tar.gz
cd memcached-1.2.6/
mkdir /usr/local/memcached
./configure --prefix=/usr/local/memcached  --with-libevent=/usr/local/libevent
make && make install

3、启动memcached服务器:

/usr/local/memcached/bin/memcached -m 100 -u root  -d  -l 127.0.0.1  -p 11211

在启动memcached时报错:/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

解决方案:

1. 首先 find / -name libevent-1.4.so.2 找到缺少的链接文件到底在那儿。

2. LD_DEBUG=libs /usr/local/bin/memcached -v

3. 做一个软连接 ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2

就ok了!



memcache代理服务器magent安装配置(192.168.1.6):

1、 magent是一款开源的Memcached代理服务器软件,其项目网址为:http://code.google.com/p/memagent/ 目前最新版本为0.6
2、 安装,先配置本地源,挂载光驱,安装编译器

 Yum install gcc gcc-c++ libgnomeui-devel


3、 编译安装libevent:

wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz   //下载安装libevent
tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable/
mkdir /usr/local/libevent
./configure
make && make install

4、安装magent

mkdir /usr/local/magent  
cp ./magent-0.6.tar.gz  /usr/local/magent   
cd /usr/local/magent  
tar xzvf ./magent-0.6.tar.gz    
/sbin/ldconfig    
sed -i "s/LIBS = -levent/LIBS = -levent -lm/g" Makefile     
make

magent.c:729: 错误:‘SSIZE_MAX’未声明(在此函数内第一次使用)
magent.c:729: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
magent.c:729: 错误:所在的函数内也只报告一次。)
make: *** [magent.o] 错误 1
解决方案:
#在ketama.h开头加入(过滤掉特殊字符)

#ifndef SSIZE_MAX
#define SSIZE_MAX      32767
#endif

继续make

cp magent /usr/bin/

启动memagent:

/usr/bin/magent -u root -n 4096 -l 192.168.1.246 -p 12000 -s 192.168.1.247:11211  -b 192.168.1.249:11211


PHP开启扩展php_memcache.Dll注意版本的问题:

//phpinfo();  //查看扩展是否开启
$mem = new Memcache();
//直接连接代理服务器
$mem->connect('192.168.1.246',12000) or die('connect fail!<br>');
 
echo "connect success!<br>";
 
for($i=0;$i<10;$i++){
    if($mem->set('key'.$i , 'data'.$i , 0 , 3600)){
            echo "set ok!";            
    }else{
            echo "set false!";
    }
}


报错提示:
Notice: Memcache::set(): Server 192.168.1.246 (tcp 12000) failed with: Failed reading line from stream (0)
原因是:代理magent没有连接到memcached服务器

解决方案:
启动memcached的时候,不能使用 –l  127.0.0.1或者-l  localhost,要设置当前IP

/usr/local/memcached/bin/memcached -m 100 -u root  -d  -l 192.168.1.247  -p 11211


memcached的一些参数:

-d install 安装memcached
-d uninstall 卸载memcached
-d start 启动memcached服务
-d restart 重启memcached服务
-d stop 停止memcached服务
-d shutdown 停止memcached服务


检查服务:

1、查看启动的memcache服务:

netstat -lp | grep memcached

2、查看memcache的进程号(根据进程号,可以结束memcache服务:“kill -9 进程号”)

ps -ef | grep memcached