Linux安装Memcache与安装php memcached扩展

来源:互联网 发布:excel如何做数据分析 编辑:程序博客网 时间:2024/06/09 19:30

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

配置完要重启apache服务器
 /usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

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/>";
}