一、软件包
a) libevent-1.4.13-stable.tar.gz
b) libmemcached-0.27.tar.gz
c) memcached-1.4.5.tar.gz
d) memcache-2.2.5.tgz
二、安装步骤
a) Tar zxvf libevent-1.4.13-stable.tar.gz
b) Cd libevent-1.4.13-stable
c) ./configure make make install
d) Cd ../
e) Tar zxvf libmemcached-0.27.tar.gz
f) Cd libmemcached-0.27
g) ./configure make make install
h) Cd ../
i) Tar zxvf memcached-1.4.5.tar.gz
j) Cd memcached-1.4.5
k) ./configure make make intall
l) Cd ../
m) Gzip –d memcache-2.2.5.tgz
n) Tar xvf memcache-2.2.5
o) Cd memcache-2.2.5
p) /usr/local/php/bin/phpize
q) ./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config
r) Make make install
s) ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
t) Vi /usr/local/php/lib/php.ini
修改extension_dir=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/”
增加extension=memcache.so
u) /usr/local/apache/bin/apachectl –k restart
v) 通过phpinfo()函数可以获取到如下信息
memcache
memcache support | enabled |
Active persistent connections | 0 |
Version | 2.2.5 |
Revision | $Revision: 1.111 $ |
Directive | Local Value | Master Value |
memcache.allow_failover | 1 | 1 |
memcache.chunk_size | 8192 | 8192 |
memcache.default_port | 11211 | 11211 |
memcache.default_timeout_ms | 1000 | 1000 |
memcache.hash_function | crc32 | crc32 |
memcache.hash_strategy | standard | standard |
memcache.max_failover_attempts | 20 | 20 |
w) 启动memcache服务器端
/usr/local/bin/memcached -d -m 100 -uroot -l 59.64.28.78 -p 11211 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址59.64.28.78,
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid。
x) 测试代码
<?php
$memcache=new Memcache;
$memcache->connect("59.64.28.78",11211) or die ("Could not connect");
$version=$memcache->getVersion();
echo "Server's version:".$version."\n";
$member[]="chenhw";
$member[]="linux";
if(!$memcache->add("name","member",false,10)){
$member2=$memcache->get("member");
}else{
$memcache->set("member",$member,false,10);
echo "member is not exist";
}
echo $member2[0];
?>
x) Memcached方法介绍
Memcache::add // 添加一个值,如果已经存在,则返回false
Memcache::addServer // 添加Memcache地址
Memcache::close // 关闭一个Memcache的连接
Memcache::connect // 打开一个到Memcache的连接
Memcache::decrement // 对保存的某个key中的值进行减法操作
Memcache::delete // 删除一个Memcache上的key值
Memcache::flush // 刷新所有Memcache上保存的项目(类似于删除所有的保存的项目)
Memcache::get // 从Memcache上获取一个key值
Memcache::getExtendedStats // 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus // 获取运行服务器的参数
Memcache::getStats //获取当前Memcache服务器运行的状态
Memcache::getVersion // 返回运行的Memcache的版本信息
Memcache::increment // 对保存的某个key中的值进行加法操作
Memcache::pconnect // 打开一个到Memcache的长连接
Memcache::replace // 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set // 向Memcache添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold // 对大于某一大小的数据进行压缩
Memcache::setServerParams // 在运行时修改服务器的参数
三、相关命令
a) kill `cat /tmp/memcached.pid`停止memcached服务
b) echo stats | nc 59.64.28.78 11211查看memcached运行状态
c) echo “flush_all” | nc 59.64.28.78 11211清空所有缓存数据