全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 23775|回复: 42
打印 上一主题 下一主题

[经验] Captain原创:让你的网站飞起来,分享memcache和memcached安装过程

[复制链接]
跳转到指定楼层
1#
发表于 2010-9-12 08:30:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
 

先普及下知识

Memcache是什么?
Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。 
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这 些HashTable。

Memcached又是什么?
Memcached是Memcache系统的主程序文件,以守护程序方式运行于一个或多个服务器中,随时接受客 户端的连接操作,使用共享内存存取数据。

那PHP中的Memcache是什么?php中的所讲的memcache是用于连接Memecached的php支持扩展之一(可用phpinfo查看),类似mbstring,eAccelerator。


简单的说
Memcache是总的缓存系统项目名称,容易和PHP中的Memcache混淆
我们常提到Memcache其实是PHP中的Memcache,即PHP的Memcached扩展支持
我们常提到Memcached是服务端主程序文件,服务端安装程序

为了让你的程序飞起来,必须安装memcached服务端程序和PHP的Memcached扩展,所以如果您要使用Memcache来缓存系统,memcache和memcached两样我们都需要安装。



OK,OK,普及完了,马上开始安装

安装memcache
  1. # cd /usr/local/src
  2. # wget http://pecl.php.net/get/memcache-2.2.5.tgz
  3. # gzip -d memcache-2.2.5.tgz
  4. # tar xvf memcache-2.2.5.tar
  5. # cd memcache-2.2.5
复制代码
以下几句,是以php所在目录为/usr/local/php为例,如果您的php有变化,请自行替换几句中/usr/local/php的部分
  1. # /usr/local/php/bin/phpize
  2. # ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
  3. # make && make install
复制代码
将memcache加入php扩展
# vi /etc/php.ini(/etc/php.ini地址为我的php.ini位置,如果你不知道你的php.ini在哪里,可以用# find / -name php.ini进行查找,或者传个探针phpinfo,找到Configuration File (php.ini) Path)中php.ini的位置
末尾加入
按键盘上的 i 开始编辑
CTRL+F翻页拉到最下面在[Zend]之前加入
  1. extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
  2. extension=memcache.so
复制代码
按Esc键,再输入
:wq
保存退出

重启你的web服务器,比如apache
  1. /etc/init.d/httpd restart
复制代码
下面刷新下PHP探针,看下是不是有这个了,有的话就是装好了
  1. memcache
  2. Version  2.2.5memcache
  3. Version  2.2.5
复制代码
 



下面安装memcached


装memcached首先需要安装安装libevent

如果是centos可以yum安装
  1. # yum install libevent-devel
复制代码
如果不支持yum的系统,可以这样装libevent
  1. # cd /usr/local/src
  2. # wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
  3. # tar vxf libevent-1.4.12-stable.tar.gz
  4. # cd libevent-1.4.12
  5. # ./configure --prefix=/usr/local/libevent
  6. # make && make install
复制代码
接续安装memcached
  1. # cd /usr/local/src
  2. # wget http://cloud.github.com/downloads/saberma/saberma.github.com/memcached-1.4.4.tar.gz
  3. # tar vxf memcached-1.4.4.tar.gz
  4. # cd memcached-1.4.4
  5. # ./configure --prefix=/usr/local/memcached
  6. # make && make install
复制代码
安装完后启动memcached并分配32m内存(32为使用内存数,可按自身情况修改)
  1. /usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root
复制代码
将memcached加入启动项
  1. # vi /etc/rc.d/rc.local
复制代码
按键盘上的 i 开始编辑
在最后加入
  1. /usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root
复制代码
按Esc键,再输入
:wq
保存退出

如果需要,可以reboot一下,不过不用reboot应该已经生效~



加速效果测试

用没有什么负载的Discuz X1做个测试,未启用时
  1. GMT+8, 2010-9-12 09:08, Processed in 0.038893 second(s), 2 queries.
复制代码
缓存启用后的效果,不过总体感觉VPS上效果不如用eAccelerato缓存加入效果那么明显
  1. GMT+8, 2010-9-12 09:08, Processed in 0.008383 second(s), 2 queries, Memcache On.
复制代码
大功告成,打完收工!~~

可能许多人已经装好了,不过论坛还没有详细教程,装好了顺手分享一下
hostloc论坛首发,转载请注明来自
www.sunk.eu.org

[ 本帖最后由 Captain 于 2010-9-13 03:34 编辑 ]

评分

参与人数 6威望 +87 收起 理由
vaman + 5
杯具 + 15 精品文章
tumour + 35 技术贴要加分
ehane + 7 不敢多装东西 ,但还是谢谢分享了 ...
sunday + 15 好帖子

查看全部评分

43#
发表于 2010-9-14 06:51:28 | 只看该作者
原帖由 ninjai 于 2010-9-14 01:43 发表
装了EA,但是没看出来效果

ea装上去重启apache/fcgi进程,opcode就生效了,只要程序不是IO过大,基本可以提速一半以上。但是,EA和memcached的内容缓存,都需要手动处理,不修改程序的前提下无论用哪个都是没用的
42#
发表于 2010-9-14 01:43:00 | 只看该作者
装了EA,但是没看出来效果
41#
发表于 2010-9-13 23:39:07 | 只看该作者
好贴,收藏之.
40#
发表于 2010-9-13 22:51:16 | 只看该作者
标记!
39#
发表于 2010-9-13 09:31:37 | 只看该作者
但是毕竟不太方便
38#
发表于 2010-9-13 09:30:18 | 只看该作者

回复 6# 的帖子

用eacc做缓存,不错的思路!
37#
发表于 2010-9-13 09:14:59 | 只看该作者
marked
36#
发表于 2010-9-12 23:03:55 | 只看该作者
不错,收藏了
35#
发表于 2010-9-12 22:34:21 | 只看该作者
程序很不错 不过我现在不用

以后 一定会用到 定下楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-15 04:04 , Processed in 0.070654 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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