Linux下配置使用memcache功能,主要包括:安装libevent函数库、安装memcached、配置PHP扩展。
一、安装libevent函数库
libevent各版本地址:http://libevent.org/old-releases.html
在此我安装当前最稳定版本:libevent-2.0.21
- 1.下载并安装
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar -zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent
make && make install
-
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
image.png
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,步骤如下:
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
image.png
然后再编译安装
make && make install
最后在php.ini加上
extension=memcache.so
image.png
安装libmemcached库及php-memcached扩展包
- 1.安装libmemcached
各版本libmemcached下载地址:https://launchpad.net/libmemcached/+download
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.安装php-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
最后在php.ini加上
extension=memcached.so
image.png
网友评论