centos 7安装Memcache及其php拓展

我怕爱的太早我们不能终老 提交于 2019-12-30 00:51:52

Linux下配置使用memcache功能,主要包括:安装libevent函数库、安装memcached、配置PHP扩展。

一、安装libevent函数库

libevent各版本地址:http://libevent.org/old-releases.html

在此我安装当前最稳定版本:libevent-2.0.21

1.下载并安装

[root@centos-7 ~]# wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
[root@centos-7 ~]# tar -zxvf libevent-2.0.21-stable.tar.gz
[root@centos-7 ~]# cd libevent-2.0.21-stable
[root@centos-7 libevent-2.0.21-stable]# ./configure --prefix=/usr/local/libevent
[root@centos-7 libevent-2.0.21-stable]# make && make install

(我安装到了/usr/local/libevent下)

2.检查是否安装成功:

# ls -al /usr/local/libevent/lib | grep libevent

 

二、安装memcached

memcached各版本下载地址:https://github.com/memcached/memcached/wiki/ReleaseNotes

在此我安装当前最稳定版本: memcache-1.5.0

1.下载安装:

# wget http://www.memcached.org/files/memcached-1.5.0.tar.gz
# tar -zxvf memcached-1.5.0.tar.gz
# cd memcached-1.5.0
# ./configure --prefix=/usr/local/memcache --with-libevent=/usr/local/libevent/
# make && make install

2.启动服务器:

# /usr/local/memcache/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

查看是否正常运行:

# netstat -tunpl | grep 11211
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      10247/memcached
udp        0      0 127.0.0.1:11211         0.0.0.0:*                           10247/memcached

 

php的memcache和memcached拓展区别

memcache的文档在:http://pecl.php.net/package/memcache

memcached的文档在:http://pecl.php.net/package/memcached

首先看下时间,memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的。所以memcache的历史比memcached早。

在安装memcache扩展的时候并不要求安装其他东东,但是在安装memcached的时候会要求你安装libmemcached,问题来了,libmemcached是memcache的C客户端,它具有的优点是低内存,线程安全等特点。比如新浪微博之前就全面将PHP的memcache替换成php的memcached,在高并发下,稳定性果断提高。

memcache的方法特别少,比如getMulti,setMulti都是没有的,基本就剩下最简单的get和set了。所以说“memcached比memcache支持更多的memcache协议”。

然后memcached直接配置了session支持,只要稍微修改下配置文件就可以把session存储在memcache中了。

为什么要装memcached扩展

memcached的1.2.4及以上增加了CAS(Check and Set)协议,对于同一key的多进行程的并发处理问题。这种情况其实根数据库很像,如果同时有几个进程对同一个表的同一数据进行更新的话,那会不会打架呢,哈哈。数据库里面可以锁定整张表,也可以锁定表里面一 行的功能,其实memcached加入的CAS根这个差不多。

php的扩展memcache,不支持cas,memcached扩展是基于libmemcached,所以要先安装libmemcached

 

三、添加php-memcache拓展

各版本下载地址:https://pecl.php.net/package/memcache

在此我用最稳定版本: memcache-2.2.7.tgz

1.步骤如下:

# wget https://pecl.php.net/get/memcache-2.2.7.tgz
# tar -zxvf memcache-2.2.7.tgz
# cd memcache-2.2.7
# /usr/bin/phpize
# ./configure --with-php-config=/usr/bin/php-config

如果出现: error: memcache support requires ZLIB. 因为缺少zlib的支持,安装一下zlib重新启动就好了:

# yum install -y zlib.x86_64 zlib-devel.x86_64

2.编译安装:

# make && make install

 

四、安装libmemcached库及php-memcached扩展包

 各版本libmemcached下载地址:https://launchpad.net/libmemcached/+download

1.步骤如下:

wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz 
tar -zxvf libmemcached-1.0.16.tar.gz 
cd libmemcached-1.0.16 
./configure -prefix=/usr/local/libmemcached -with-memcached 
make && make install

2.下载memcached扩展包并安装

各版本memcached拓展包下载地址:https://pecl.php.net/package/memcached

wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar -zxvf memcached-2.2.0.tgz
cd memcached-2.2.0
/usr/bin/phpize --with-php-config=/usr/bin/php-config
./configure --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
make && make install

安装成功:

修改/etc/php.ini,添加下面的扩展

extension=memcached.so

通过yum安装的php则:

echo 'extension=memcached.so' > /etc/php.d/memcached.ini

重启服务器

service httpd restart 
//centos 7
systemctl restart httpd.service

检查是否成功加载php-memcached拓展:

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!