Heim >Backend-Entwicklung >PHP-Tutorial >圆满php环境:mac中配置memcache超详细攻略(区分memcache系统中的概念)

圆满php环境:mac中配置memcache超详细攻略(区分memcache系统中的概念)

WBOY
WBOYOriginal
2016-06-13 12:20:29941Durchsuche

完善php环境:mac中配置memcache超详细攻略(区分memcache系统中的概念)

我想配置memcacahe系统?是不是我要先安装libmemcached?
哦!不对,你要先安装libevent!
它不是叫libmemcached吗?
php的扩展memcached才需要先安装libmemcached!
啊!php的拓展不是叫memcache吗?怎么会是memcached?
memcache是整个memcache系统!
呀!那他们说memcached是服务端的守护进程,不对吧。
没错,memcached就是memcache系统的守护进程。



以前被这些概念弄得有点迷糊,今天来理清一下。菜鸟心得,高手勿喷。

概念

首先:Memcache是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。Memcache在代表整个项目的时候,它包括了服务端(memcached)和客户端(memcache)。(其实就是给这个项目一个名字,这个名字刚好叫Memcache)

一、服务端——Memcached

Mecache整个项目的服务端是memcached,看见了,多了一个“d”字母,有没遇到过“mysqld”,”httpd”等,都是一样的,它们也是守护进程,通常是持久连接,长期候命。说通俗点,服务端其实就是一个强有力的篮子,你可以把东西放进来,跟DB一样,可以存数数据在DB,那么DB也是一个服务端,我们现在改为存数据到memcached里面而已。

OK!让我们一切从服务端开始,先安装mecached这个服务端:

有二种方式安装

(1)安装方式一:使用超强的Homebrew管理软件工具安装

1
$brew install memcached

用Homebrew工具安装,一个好处是不用那么麻烦,自己去找源码包,二个好处是很多依赖软件会自行搜索安装。

OK!在安装过程中会看见它会先安装一个Libevent的库!对memcached的基础条件是这个Libevent,所以必须先安装它!(好了,这里把Libevent和memcached概念都弄清楚了吧。)

(2)安装方式二:使用源码包安装:

1.去官网http://libevent.org/?下载最新源码,例如你可以使用?libevent-2.0.20-stable.tar.gz(我用的时2.0.21。看见没,所以你用工具,它会自动帮你安装libevent依赖库,自己安装就要去找源码包了。)

2.解压到/usr/src目录 ,执行命令:sudo tar -zxvf libevent-2.0.20-stable.tar.gz -C /usr/src

3.进入解压以后的目录,用sudo方式执行命令:

1
2
3
sudo ./configure --prefix=/usr/local/libevent ;
?
?make && make install

OK!我们现在测试一下服务端。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Engine:libevent app$ telnet localhost 11211
?Trying ::1...
?telnet: connect to address ::1: Connection refused
?Trying 127.0.0.1...
?Connected to localhost.
?Escape character is '^]'.
?stats
?STAT pid 50
?STAT uptime 23245
?STAT time 1396500024
?STAT version 1.4.5
?STAT pointer_size 64
?STAT rusage_user 0.270129
?STAT rusage_system 0.818887
?STAT curr_connections 5
?STAT total_connections 9
?STAT connection_structures 6

嗯,一切正常!

二、客户端——Memcache

Mecache整个项目的客户端也叫Memcache(名称只是一个代号,你可以叫memcache,他也可以叫memcache,我们都可以叫memcache),有了服务端篮子,那必须有个客户端放东西到篮子里,不然篮子有什么用呢?服务端安装了,客户端用什么语言都能搞,我这里用php做客户端。(你也可以用java,c,python,ruby。。。。)

请严重注意:php的拓展分为memcache和memcached(哎,名称只是一个代号),就是说这两种拓展都能使用,而memcached是基于libmemcached(也就是一个依赖库)。听说是说前一个是原生的,后一个比前一个功能更强大。比较推荐使用基于libmemcahced 库的memcached扩展。支持memcache提供的CAS操作,稳定性和效率也更好。

我这里安装memcached。

(1)、使用超强的Homebrew管理软件工具安装:

1
$ sudo brew install php53-memcached

安装日志:

1
2
3
4
5
6
7
8
9
10
11
==> Installing php53-memcached dependency: libmemcached
?
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/libmemcache
?
######################################################################## 100.0%
?
To finish installing memcached for PHP 5.3:
?
* /usr/local/etc/php/5.3/conf.d/ext-memcached.ini was created,
?
do not forget to remove it upon extension removal.

ext-memcached.ini? 文件中记录了自定义php拓展的位置。

1
vi ext-memcached.ini

我们看到:

[memcached]

extension=”/usr/local/Cellar/php53-memcached/2.1.0/memcached.so”

ok,我们现在去这个路径找到memcached.so扩展,将它cp到你自己的extension目录下

mac中php的默认扩展路径是:

1
cd /usr/lib/php/extensions/no-debug-non-zts-20090626 (我的php版本是5.3的)

好了,复制:

1
cp -p -v? memcached.so? /usr/lib/php/extensions/no-debug-non-zts-20090626

ok, 打开php.ini,增加memcached.so扩展路径。

extension= memcached.so

重启apache(或者你自己的web服务软件):

1
sudo apachectl restart

用phpinfo查一下:

?

mecache

好的,成功了!顺便把memcache拓展也装上了。

(2)、使用源码包安装
libmemcached:?https://launchpad.net/libmemcached?(或者http://libmemcached.org/libMemcached.html?)下载源码,
memcached:有两个版本一个是memcache(http://pecl.php.net/package/memcache),另一个是基于libmemcached的memcached版本(http://pecl.php.net/package/memcached?);

安装过程就不演示了。(不会源码包就用工具吧,我比较喜欢用源码包,速度杠杠的。)

结束语

其实先把概念和原理弄清楚后,做起来就比较顺手。
理清思路,轻装上阵。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn