首先上一个memcached原理图,让不了解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的安装其实很简单:
1.由于memcached是基于libevent的,因此需要安装libevent,libevent-devel
# yum install libevent libevent-devel -y
2.进入到http://memcached.org/ 下载tar包
cd /home/down
wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
tar -xvzf memcached-1.4.5.tar.gz
cd memcached-1.4.5
3.然后编译安装
./configuire
make
make install
安装完毕后,用守护进程方式启动memcached
memcached -d start -u nobody -m 1024 -p 11211-c 2048 -P /tmp/memcached.pid
memcached命令参数解释:
-p <num> 监听的端口
-l <ip_addr> 连接的IP地址, 默认是本机
-d start 启动memcached 服务
-d restart 重起memcached 服务
-d stop|shutdown 关闭正在运行的memcached 服务
-d install 安装memcached 服务
-d uninstall 卸载memcached 服务
-u <username> 以<username>的身份运行 (仅在以root运行的时候有效)
-m <num> 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c <num> 最大同时连接数,默认是1024
-f <factor> 块大小增长因子,默认是1.25
-n <bytes> 最小分配空间,key+value+flags默认是48
-h 显示帮助
可以用以下两种方式查看memcached的状态
一、telnet 方式
telnet 127.0.0.1 11211
stats
会显示一串参数和值的,中文解释如下
pid | 32u | 服务器进程ID |
uptime | 32u | 服务器运行时间,单位秒 |
time | 32u | 服务器当前的UNIX时间 |
version | string | 服务器的版本号 |
rusage_user | 32u:32u | 该进程累计的用户时间 (秒:微妙) |
rusage_system | 32u:32u | 该进程累计的系统时间 (秒:微妙) |
curr_items | 32u | 服务器当前存储的内容数量 |
total_items | 32u | 服务器启动以来存储过的内容总数 |
bytes | 64u | 服务器当前存储内容所占用的字节数 |
curr_connections | 32u | 连接数量 |
total_connections | 32u | 服务器运行以来接受的连接总数 |
connection_structures | 32u | 服务器分配的连接结构的数量 |
cmd_get | 32u | 取回请求总数 |
cmd_set | 32u | 存储请求总数 |
get_hits | 32u | 请求成功的总次数 |
get_misses | 32u | 请求失败的总次数 |
bytes_read | 64u | 服务器从网络读取到的总字节数 |
bytes_written | 64u | 服务器向网络发送的总字节数 |
limit_maxbytes | 32u | 服务器在存储时被允许使用的字节总数 |