memcache扩展是b/s模式运行 也就是说需要服务器端和客户端两个才能正常运行,服务器端 memcached,客户端 memcache,memcached是基于libevent的,libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
由于memcached是基于libevent的,因此需要安装libevent
1.下载libevent
下载地址:http://libevent.org/
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz #下载
cd /tmp #首先进入到该下载包的目录
tar zxvf libevent-2.0.22-stable.tar.gz #解压包
cd libevent-2.0.22-stable #进入到解压的目录
./configure --prefix=/usr/local #编译前配置,生成Makefile文件,路径可自行更改
make && make install #编译+安装
测试是否安装成功
ls -la /usr/local/lib | grep libevent
成功就会有相关文件
2. 安装memcached
cd
/tmp
#首先进入到该下载包的目录
tar zxvf memcached-
1.4
.
24
.tar.gz
#解压包
cd
memcached-
1.4
.
24
#进入到解压的目录
./configure --with-libevent=/usr/local
#编译前配置,生成Makefile文件,路径必须与libevent中一致
make && make install
#编译+安装
测试是否安装成功
ls -la /usr/local/bin/memcached
3. 安装memcache
cd
/tmp
#首先进入到该下载包的目录
tar zxvf memcache-
3.0
.
8
.tgz
#解压包
cd
memcache-
3.0
.
8
#进入到解压的目录
/usr/local/lnmp/php/bin/phpize
#动态为php添加扩展。phpize路径可能不一致,一般在php安装目录的bin目录下
./configure --enable-memcache --with-php-config=/usr/local/lnmp/php/bin/php-config --with-zlib-dir
#php-config请根据自己环境情况填写,
一般在php安装目录的bin目录下
make && make install
#编译+安装
安装完成后有这样的提示:
Installing shared extensions:
/usr/local/lnmp/
php/lib/php/extensions/no-debug-non-zts-20100525/
记下路径
4.配置php.ini文件
添加以下内容
extension=memcache.so
extension_dir="
/usr/local/lnmp/
php/lib/php/extensions/no-debug-non-zts-20100525/"
#修改extension_dir路径
然后重启nginx和php-fpm服务看到以下截图内容表示配置成功:
启动memcached
memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
Memcached启动参数说明:
-d 选项是启动一个守护进程,
-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB
-M return error on memory exhausted (rather than removing items)
-u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户。
-l 是监听的服务器IP地址,默认为所有网卡。
-p 是设置Memcache的TCP监听的端口,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024
-P 是设置保存Memcache的pid文件
-f <factor> chunk size growth factor (default: 1.25)
-I Override the size of each slab page. Adjusts max item size(1.4.2版本新增)
也可以启动多个守护进程,但是端口不能重复
-p 指定端口号(默认11211)
-m 指定最大使用内存大小(默认64MB)
-t 线程数(默认4)
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
停止memcached
kill cat /tmp/memcached.pid
查看memcached是否已经启动
netstat -ant
测试例子:
<?php
$mem = new Memcache;
$mem->connect("localhost", 11211);
$mem->set('key','This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>