php浅析memcache和memcached模块比较以及安装方法
1.目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的。与之对应的带d的memcached是建立在libmemcached的基础上,所以相对来说,memcached版本的功能更全一些。
2.memcache是原生实现的,支持oo和非oo两套接口并存。而memcached是使用libmemcached,只支持oo接口。
3.memcached还有个非常称赞的地方,就是flag不是在操作的时候设置了,而是有了一个统一的setoption()。memcached实现了更多的memcached协议。
4.memcached支持binary protocol,而memcache不支持。这意味着memcached会有更高的性能。不过memcached目前还不支持长连接。
memcache扩展的安装
以centos为例
https://pecl.php.net 中有php常用扩展的包
搜索memcache
安装过程如下所示
[root@vm_114_93_centos local]# wget https://pecl.php.net/get/memcache-3.0.8.tgz [root@vm_114_93_centos memcache-3.0.8]# tar -zxvf memcache-3.0.8.tgz [root@vm_114_93_centos local]# cd memcache-3.0.8 [root@vm_114_93_centos memcache-3.0.8]# phpize configuring for: php api version: 20131106 zend module api no: 20131226 zend extension api no: 220131226 [root@vm_114_93_centos memcache-3.0.8]# whereis php-config php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz [root@vm_114_93_centos memcache-3.0.8]# ./configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir [root@vm_114_93_centos memcache-3.0.8]# make [root@vm_114_93_centos memcache-3.0.8]# sudo make install installing shared extensions: /usr/lib/php/modules/ [root@vm_114_93_centos memcache-3.0.8]# cd /usr/lib/php/modules/ [root@vm_114_93_centos modules]# ll | grep memcache -rwxr-xr-x 1 root root 393166 oct 10 19:25 memcache.so
如果make完以后报错如下
make: *** [memcache_pool.lo] error 1
是因为没有安装zlib,执行以下命令后,重新安装
yum -y install zlib-devel
此时就可以在相关目录中看到memcache.so
在php.ini中加入以下配置:
extension=memcache.so
然后重启apache,看phpinfo中
至此memcache扩展安装成功。
memcached扩展安装
首先需要安装前置扩展libmemcached
到https://launchpad.net/libmemcached/+download 下载最新安装包
过程如下:
[root@vm_114_93_centos local]# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz [root@vm_114_93_centos local]# tar -zxvf libmemcached-1.0.18.tar.gz [root@vm_114_93_centos local]# cd libmemcached-1.0.18 [root@vm_114_93_centos libmemcached-1.0.18]# ./configure --prefix=/usr/lib/libmemcached [root@vm_114_93_centos libmemcached-1.0.18]# make && make install
然后再安装php的memcached扩展,同样是在https://pecl.php.net 中下载,安装过程如下:
[root@vm_114_93_centos local]# wget https://pecl.php.net/get/memcached-2.2.0.tgz [root@vm_114_93_centos local]# tar -zxvf memcached-2.2.0.tgz [root@vm_114_93_centos local]# cd memcached-2.2.0 [root@vm_114_93_centos memcached-2.2.0]# phpize configuring for: php api version: 20131106 zend module api no: 20131226 zend extension api no: 220131226 [root@vm_114_93_centos memcached-2.2.0]# ./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached [root@vm_114_93_centos memcached-2.2.0]# make [root@vm_114_93_centos memcached-2.2.0]# make install installing shared extensions: /usr/lib/php/modules/ [root@vm_114_93_centos memcached-2.2.0]# cd /usr/lib/php/modules/ [root@vm_114_93_centos modules]# ll | grep memcached -rwxr-xr-x 1 root root 274539 oct 10 19:51 memcached.so
安装时注意指定php-config以及libmemcached的路径
注:如果在./configure那串命令后,报错:
error: no, sasl.h is not available.
就需要在其后面加上 --disabled-memcached-sasl
[root@vm_114_93_centos memcached-2.2.0]# ./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/lib/libmemcached --disabled-memcached-sasl
安装完成后按如下步骤,添加扩展
在php.ini中加入以下配置:
extension=memcached.so
然后重启apache,看phpinfo中
到此memcached扩展安装完毕
补充:利用如下方式可以查看php中安装的扩展
[root@vm_114_93_centos modules]# php -m [php modules] bz2 calendar core ctype curl date dom ereg exif fileinfo filter ftp gd gettext gmp hash iconv imap json libxml mbstring memcache memcached mhash mysql mysqli openssl pcntl pcre pdo pdo_mysql pdo_sqlite phar readline redis reflection session shmop simplexml sockets spl sqlite3 standard tokenizer wddx xml xmlreader xmlwriter xsl zip zlib [zend modules]
推荐阅读
-
php扩展memcached和memcache的安装配置方法
-
php浅析memcache和memcached模块比较以及安装方法
-
Debian安装memcached和php5-memcache模块
-
php扩展memcached和memcache的安装配置方法
-
Debian安装memcached和php5-memcache模块
-
php浅析memcache和memcached模块比较以及安装方法
-
Debian安装memcached和php5-memcache模块
-
php memcache和php memcached比较以及问题
-
Debian安装memcached和php5-memcache模块
-
php memcache和php memcached比较以及问题