您的位置:首页 > 数据库 > Memcache

Memcached的使用-----安装及php扩展的打开

2016-07-29 00:00 357 查看
摘要: 随着互联网的发展,数据量的大量增加,以及高并发情景越来越多的出现,传统的关系型数据库出现瓶颈。

Memcache与Memcached的区别

Memcache模块提供了于Memcached方便的面向过程及面向对象的接口,Memcached是为了降低动态web应用 从数据库加载数据而产生的一种常驻进程缓存产品。

Memcache模块同时提供了一个session 处理器 (memcache).

Memcached是一个高性能分布式的内存对象缓存系统, 通常被用于降低数据库加载压力以提高动态web应用的响应速度。

此扩展使用了libmemcached库提供的Api与Memcached服务端进行交互。它同样提供了一个session处理器(memcached)。

Memcache是PHP实现的,memcached是使用libmemcached的,从手册上看,后者要比前者多几个方法,使用方式上都差不多。
memcache是原生实现的,但是使用libmemcached的memached只支持OO接口,而memcache则是OO和非OO两套接口并存,以后随着memcached服务器端的改进,这个lib也必定会马上跟进的。而memcache却不一定能做到按时跟进。差别比较大的一点是,memcached 支持 Binary Protocol,而 memcache 不支持,意味着 memcached 会有更高的性能。不过,还需要注意的是,memcached 目前还不支持长连接。

Memcached的安装及使用

Memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库的访问次数,以提高动态Web应用的速度和可扩展新。
Memcached以守护程序的方式运行于一个或多个服务器中,随时接收客户端的连接操作,客户端可以由各种语言编写,如Perl,PHP,Python,Ruby,Java,C等。客户端在与Memcached服务器建立连接之后,接下来的事情就是存取对象了。每个被存储的对象都有一个唯一标识符key与之相关联,通过key可以对对象进行存取操作。保存在memcached的对象实际上放置在内存中,这也是Memcached如此高效快速的原因。

为了提高性能,Memcached把数据存储在内存中。由于数据仅存在内存中,因此重启Memcached或者操作系统会导致全部数据消失,另外,内存容量达到指定值后,就会使用LRU算法自动删除不使用的缓存。Memcached本身是为缓存而设计的服务器,因为并没有过多考虑数据的持久化问题。

libevent 是安装 memcached 的唯一前提条件。它是 memcached 所依赖的异步事件通知库。您可以在 monkey.org 上找到关于 libevent 的源文件。

libeven 安装包下载地址 http://libevent.org/

memcached服务器安装包下载地址 http://memcached.org/

curl下载好libevent在编译的时候出现问题bufferevent_openssl.c:60:10: fatal error: 'openssl/bio.h' file not found

系统中之前用brew装过openssl,肯定是路径的问题,然而并没有解决,后来请教别人之后,给了我一个方案,将openssl下的include下的openssl复制到libevent下再进行编译,就可以了,尝试之,果然解决。

$ cd /usr/local/Cellar/openssl/1.0.2h_1/include
$ cp -r ./openssl /usr/local/Cellar/libevent/
$ cd /usr/local/Cellar/libevent
$ ./configure --prefix=/usr/local
$ make
$ make install




接下来就是安装memcached服务器

$ cd /usr/local/Cellar
$ curl -O http://www.memcached.org/files/memcached-1.4.29.tar.gz $ tar -zxvf memcached-1.4.29.tar.gz
$ mv memcached-1.4.29.tar.gz memcached
$ cd memcached
$ ./configure --prefix=/usr/local
$ make && make install

安装之后进入/usr/local/bin看下,存在memcached文件,说明memcached服务器端安装成功



继续安装memcached客户端

客户端的下载地址为 http://pecl.php.net/package/memcached
$ cd /usr/local/Cellar
$ git clone https://github.com/php-memcached-dev/php-memcached $ cd php-memcached
$ /Application/MAMP/bib/php/php5.6.10/bin/phpize
$ ./configure --prefix=/usr/local --with-php-config=/Application/MAMP/bib/php/php5.6.10/bin
/php-config --with-zlib-dir=/usr/local/Cellar/zlib
$ make
$ make install

如果没有zlib的话,就先安装一个zlib依赖,我比较懒,用的brew安装



最后就是修改php.ini了,在;Extension下面加上extension=memcached.so,重启Web服务器,phpinfo();

如果不成功,尝试extension=DIR 路径改成全路径

例如我在MAMP下安装为extension=/Applications/MAMP/bin/php/php5.6.10/lib/php/extensions/no-debug-non-zts-20131226/memcached.so



至此,大功告成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息