一、简介
首先说说memcached的由来吧,memcache由Danga Interactive这家公司开发,这家公司的口号是“We make cool stuff”。最早是为了加速LiveJournal.com这个网站。这个网站可以支持超过2千万个动态页面,每天有超过1百万的用户访问网站服务器和数据库。
memcached 是由c语言开发的,免费的,开源的,高性能的,分布式内存对象缓存系统。
memcached 适用于什么场合呢:Memcached是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应 用,memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源,即使是UNIX本地连接也一样。 在我之前的测试数据中显示,memcached本地读写速度要比直接PHP内存数组慢几十倍,而APC、共享内存方式都和直接数组差不多。可见,如果只是 本地级缓存,使用memcached是非常不划算的。
我们可以通过这个图加强理解:
二、安装步骤
1、服务器端安装
我写下我这里的服务器环境供大家参考:
lighttpd-1.4.28
PHP 5.3.6
a、首先需要安装libevent
下载tar包: wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz &
编译安装:
- >tar -zxvf libevent-1.4.14b-stable.tar.gz
- >cd libevent-1.4.14b-stable
- >./configure //默认装到/usr/lib/下
- >make
- >make install
b、 安装memcache
下载地址:http://code.google.com/p/memcached/downloads/list
我下载的是:memcached-1.4.5.tar.gz
编译安装:
- >tar -zxvf memcached-1.4.5.tar.gz
- >cd memcached-1.4.5
- >./configure
- >make
- >make install
2、服务器端运行
运行更简单,你只需要在安装memcached的目录下键入:
- >./memcached -d -m 10 -u root -l 127.0.0.1 -p 11210 -c 256 -P /tmp/memcached.pid
-d 以守护程序(daemon)方式运行 memcached。
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。
-m 设置 memcached 可以使用的内存大小,单位为Mb,缺省是 64 MB;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;(此处不设置,测试后发现无法连接)
-c 设置最大运行的并发连接数,默认是1024
-P 设置保存Memcache的pid文件
3、简单的操作memcached
停止:
- >kill `cat /tmp/memcached.pid`
查看memcached监听的ip和端口:
a、首先需要安装libmemcached
为啥需要libmemcached 呢,因为在php中memcached的使用需要依赖于libmemcached,也就是说libmemcached提供了使用memcached的方法。
下载地址:https://launchpad.net/libmemcached/+download
我这里下载的版本是:libmemcached-0.53.tar.gz
安装编译过程:
- >tar -zxvf libmemcached-0.53.tar.gz
- >cd libmemcached-0.53
- >./configure
- >make
- >make install
b、安装php的memcached扩展
下载:wget http://pecl.php.net/package/get/memcached-1.0.2.tgz
安装:
- >tar -zxvf memcached-1.0.2.tgz
- >cd memcached-1.0.2
- >./configure --with-php-config=/usr/local/php/bin/php-config
- >make
- >make install
在php.ini中新增配置内容:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension = memcache.so
从新启动lighttpd
5、运行和测试
a、命令行下:
./php -m
你将会看到:memcached
b、执行程序:
- <?php
- $m = new Memcached();
- $m->addServer('127.0.0.1', 11211);
- $m->set('foo', 200);
- var_dump($m->get('foo'));
- ?>
得到结果:
int(200)
好啦,至此memcached基本架设完成了,如果有啥问题或者有啥偶说的不对的欢迎来联系偶
参考:
http://www.ibm.com/developerworks/cn/opensource/os-memcached/index.html
http://hi.baidu.com/yts_dayou/blog/item/8999c5f92ff2b403d8f9fdcd.html
在这里非常感谢上面两位