php扩展memcache和memcached安装
首先简单介绍下memcache和memcached的区别
Memcache和Memcached 其实是一个东西,只是php中要是用的扩展不一样; 两个不同版本的php的memcached的客户端,
new memcache是pecl扩展库版本, new memcached是libmemcached版本,
memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的。所以memcache的历史比memcached早。
在安装memcache扩展的时候并不要求安装其他,但是在安装memcached的时候会要求你安装libmemcached,libmemcached是memcache的C客户端,它具有的优点是低内存,线程安全等特点。libmemcached
是一个 memcached 的库,客户端库,C 和 C++
语言实现的客户端库,具有低内存占用率、线程安全、并提供对memcached功能的全面支持
安装PHP的Memcached扩展
1.下载文件:
https://launchpad.net/libmemcached/ 下载libmemcached依赖库
http://pecl.php.net/package/memcached 下载php memcached扩展
- 解压
tar zxvf libmemcached-0.44.tar.gz
tar zxvf memcached-1.0.2.tgz
- 编译libmemcached
cd libmemcached-0.44
./configure --prefix=/usr/local/libmemcached --enable-sasl
make && make install
- 编译memcached扩展
yum -y install php-devel php-cli zlib zlib-devel php
cd memcached-1.0.2
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached --disable-memcached-sasl
make && make install
- 安装扩展
vim /etc/php.ini
#加入一行: extension = memcached.so
- 重启php服务
- 验证(查看phpinfo)
可以安装一个httpd来查看
vim /var/www/html/index.php
<?php
phpinfo();
?>
systemctl start httpd
访问IP/index.php,可以看到php页面有列出memcached的信息
部分信息如下:
memcached
memcached support enabled
Version 1.0.2
libmemcached version 0.44
Session support yes
igbinary support no
安装PHP的Memcache扩展
1.在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。
2.安装PHP的memcache扩展
tar zxf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/local/php/bin/phpize
./configure --enable-memcache=/usr/local/memcache --with-php-config=/usr/local/php/bin/php-config
make && make install
3.上述安装完后会有类似这样的提示:
Installing shared extensions: xxxxxxxxxxxxxxxxx
4.把php.ini中的extension_dir = “./”修改为
extension_dir = “xxxxxxxxxxxxxxxxx”
添加一行来载入memcache扩展:extension=memcache.so
5.重启apache sytemctl restart httpd
测试,用phpinfo查看,会发现增加了memcache的信息
============================================================
进一步测试
yum -y install memcached
systemctl start memcached
修改 /var/www/html/index.php
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$memcache->set('key20171117', 'hello,world');
$get_value = $memcache->get('key20171117');
echo $get_value;
?>
重启httpd服务,再次访问会出现hello,world字样
直接读取数据库
[root@cache01 ~]# printf "get key20171117 \r\n"|nc localhost 11211
VALUE key20171117 0 11
hello,world
END
成功