memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。memcached是分布式内存缓存服务器软件,最早运行在mixi上,最初的目的是为了解决大量mixi访问对数据库的压力,提高动态Web应用的速度、提高可扩展性,memcached当初的功能是缓存高命中率的data和object,工作原理如下:
由于memcached在mixi上表现卓越,memcached也渐渐被越来越多的高访问web运用,像hatena、 Facebook、 Vox、LiveJournal等,memcached也渐渐成为现在web架构中不可或缺的一位成员。现在越来越多的社区爱好者在不断维护着memcached。
memcached是基于libevent的事件处理
libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以参考Dan Kegel的The C10K Problem。
欲了解更更多关于libevent:http://monkey.org/~provos/libevent/
memcached的安装其实很简单:
由于memcached是基于libevent的,因此需要安装libevent,libevent-devel
# yum install libevent libevent-devel -y
下载memcached的主程序包
# wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
# tar zxvf memcached-1.4.5.tar.gz
# cd memcached-1.4.5
# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/lib
注意:这是笔者编译出现了错误错误提示如下
不明白什么原因,去google了一下,加了个编译选项
# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/lib -build=i686-pc-linux-gnu
编译成功,问题是解决了,但笔者不明白什么原因,难道是指令集的问题,关于这个i686-pc-linux-gnu,还请那位高人指点一下,不胜感谢!!!!
# make & make install
memcached安装成功了,下面是启动memcached
从终端输入以下命令,启动memcached。
$ /usr/local/bin/memcached -p 11211 -m 64m -vv
slab class 1: chunk size 88 perslab 11915
slab class 2: chunk size 112 perslab 9362
slab class 3: chunk size 144 perslab 7281
中间省略
slab class 38: chunk size 391224 perslab 2
slab class 39: chunk size 489032 perslab 2
<23 server listening
<24 send buffer was 110592, now 268435456
<24 server listening (udp)
<24 server listening (udp)
<24 server listening (udp)
<24 server listening (udp)
这里显示了调试信息。这样就在前台启动了memcached,监听TCP端口11211 最大内存使用量为64M。调试信息的内容大部分是关于存储的信息
作为daemon后台启动时
$ /usr/local/bin/memcached -p 11211 -m 64m -d
选项 | 说明 |
-p | 使用的TCP端口。默认为11211 |
-m | 最大内存大小。默认为64M |
-vv | 用very vrebose模式启动,调试信息和错误输出到控制台 |
-d | 作为daemon在后台启动 |
更多关于memcache的内容以后补充
转载于:https://blog.51cto.com/fancy1921/515609