首先上一个memcached原理图,让不了解memcached的兄弟普及一下
基本原来就如上图所示,需要文字描述的可以谷歌一下。
memcached是基于libevent的事件处理
libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以参考Dan Kegel的The C10K Problem。
欲了解更更多关于libevent:~provos/libevent/
memcached的安装其实很简单:
1.由于memcached是基于libevent的,因此需要安装libevent,libevent-devel
# yum install libevent libevent-devel -y
2.进入到 下载tar包
cd /home/down
wget
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 服务器进程IDuptime 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 服务器在存储时被允许使用的字节总数