Linux下Memcache的安装方法

最近都在研究缓存的问题,先是APC,显示Memcache,目的还是要将WordPress的速度提起来.

Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。
它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。
Memcache官方网站:http://www.danga.com/memcached

首先去官方下载最新的版本,现在最新的是memcached-1.4.1 ,然后就编译安装了.

另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新稳定版本是libevent-1.4.12 .

1.先进这个两个文件下载回来,放到临时目录下


cd /usr/local/src
wget http://memcached.googlecode.com/files/memcached-1.4.1.tar.gz
wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz

2.先安装libevent:

tar zxvf libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12-stable
./configure –prefix=/usr
make
make install

3.安装memcached,安装时还要指定libevent的安装位置:

tar zxvf memcached-1.4.1.tar.gz
cd memcached-1.4.1
./configure –with-libevent=/usr
make
make install

4.然后就可以启动memcached的守护进程了:

/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.10 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,

-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

-u是运行Memcache的用户,我这里是root,

-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,

-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,

-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

如果要结束Memcache进程,执行:

kill cat /tmp/memcached.pid

下面就是安装Memcache的PHP扩展

1.在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。

2.安装PHP的memcache扩展

wget http://pecl.php.net/get/memcache-2.2.5.tgz
tar vxzf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install

3.上述安装完后会有类似这样的提示:

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/

4.把php.ini中的extension_dir = “./”修改为

extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2006xxxx/”

5.添加一行来载入memcache扩展:extension=memcache.so

最后重启你的phpfastcgi进程或者apache, Memcache就安装成功了.

PS.下次有空说说WordPress 怎么应用Memcache

15 Comments

Add a Comment
  1. 猫猫的速度没以前快了

    1. @Showfom
      大庆月….大家都差不多了~~

  2. 猫猫的这个模版漂亮啊

  3. 猫哥,话说小负荷blog貌似super cache生成静态页貌似就够了吧,有必要启用memcache么?

    1. 很久没有用super cache了,Nginx用super cache有点麻烦,而且生产的文件比memcache硬盘缓存版的还要多,所以现在改用memcache内存缓存,才占用2.5M

  4. 研究好了速度快外 希望加深对其他的研究啊
    毕竟这个文章只是对同样的wordpress的linux平台而言哦

    针对面太窄了点

  5. 现在手头服务器一把,而且同一个机房,相互速度很快,这样用memcache分布式负载正好
    话说请教下-m指定内存大小有啥子计算方式没?
    心里没底,也不知道如何测试比较合适的值
    谢谢

    1. 计算方式?其实你要适合值吧?有个文件可以看分配给memcache内存的利用率的..Google,memcache.php
      先假设你的服务器都有内网IP,都可以相连..memcache应用到WP..
      我发现一个问题,就是WP的memcache,每个memcache的进程端口只能对应一个WP博客,否则缓存数据混乱,这是我测试得到的,或许我的环境问题,你也可以测试下..
      如果按照我上面的结论.那么就要建立多个进程
      /usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.10 -p 12001 -c 256 -P /tmp/memcached.pid
      /usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.10 -p 12002 -c 256 -P /tmp/memcached.pid
      /usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.10 -p 12003 -c 256 -P /tmp/memcached.pid

      1. 多谢猫神!
        还真不知道是不是内网可以访问…回头提个ticket问问…

        1. 两只猫在这里猫言猫语啊!

  6. 还是有10个query啊

  7. 这模版看起来挺费神。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

猫言猫语 © 2007-2014 Frontier Theme