Linux安装Memcache与安装php memcached扩展
https://pecl.php.net/package/memcache
http://memcached.org/files/
一、在Linux系统上安装Memcache服务,要先安装libevent库
1.安装libevent库
wget -P /soft http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz
cd soft
tar zxf libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable/
./configure --prefix=/usr/local/lib
make && make install
2.安装memcache
wget -P /soft http://memcached.org/files/memcached-1.4.20.tar.gz
tar zxf memcached-1.4.20.tar.gz
cd memcached-1.4.20/
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/lib
make && make install
安装完成
修改memcache为开机自启动
vi /etc/rc.local
添加以下代码,并保存
/usr/local/memcached/bin/memcached -p 11211 -U 0 -d -r -u root -m 2040 -c 1024 -t 4
手动启动memcache命令
/usr/local/memcached/bin/memcached -p 11211 -U 0 -d -r -u root -m 2040 -c 1024 -t 4
测试memcache是否启动
telnet 127.0.0.1 11211
可以看到如下代码,说明memcache服务已经启动
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
二、安装php的Memcached扩展,要先安装libmemcached这个支持库。
1、安装libmemcached
1.1下载wget -P /usr/local/libmemcached
wget -P /soft https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
-P /soft :指定把安装包下载到soft目录
1.2 安装
cd soft
tar -zxf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure
--prefix=/usr/local/libmemcached --with-memcached
make && make install
完成安装
2.安装memcached
2.1下载
wget -P
/soft http://pecl.php.net/get/memcached-2.2.0.tgz
2.2 安装
cd soft
tar -zxf memcached-2.2.0.tgz
cd memcached-2.2.0 (进入安装文件夹)
cd php-memcached (再进入到文件夹,在这个文件夹下进行下一步的phpize命令)
使用phpize命令生成一个configure文件,phpize会根据系统信息,生成相应的configure文件,
/usr/local/apache2/bin/phpize
编译,php-config文件的路径,要根据实际路径修改
./configure
--with-php-config=/usr/local/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached
安装
make
&& make install
成功安装之后,会在php扩展目录下生成memcached.so
3.配置php.ini文件
extension=memcached.so
phpinfo()输出memcached支持结果
三、测试案例
<?php
$memcachehost="127.0.0.1";
$memcacheport=11211;
$memcache = new Memcached;
$memcache->addServer($memcachehost,$memcacheport);
$key="members2";
if(!$memcache->get($key)){
$mysqli=new mysqli('127.0.0.1','root','','landy');
$mysqli->query('SET NAMES UTF8');
$sql="select * from members";
$res=$mysqli->query($sql);
while($row=mysqli_fetch_array($res)){
$arr[]=$row;
}
$str="mysql";
$memcache->set($key,serialize($arr));
$data=$arr;
}
else{
$str="memcache";
$data_mem=$memcache->get($key);
$data=unserialize($data_mem);
}
echo $str."<br/>";
foreach($data as $key=>$val){
echo $val['wxname']."<br/>";
}