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拓展:
来源:https://www.cnblogs.com/gimin/p/7392596.html