设为首页 收藏本站
查看: 826|回复: 0

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

[复制链接]

尚未签到

发表于 2017-4-14 06:41:39 | 显示全部楼层 |阅读模式
我想配置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查一下:
 

好的,成功了!顺便把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 );

安装过程就不演示了。(不会源码包就用工具吧,我比较喜欢用源码包,速度杠杠的。)
结束语
其实先把概念和原理弄清楚后,做起来就比较顺手。
理清思路,轻装上阵。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-364621-1-1.html 上篇帖子: 在ubuntu下第一次边学边用php笔记(供自己观看,比较乱,碰到什么,就记录什么) 下篇帖子: FLEX 与现有开发语言(C#,PHP,JAVA)之间的通信方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表