Memcached安装
1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
#cd/tmp
#wgethttp://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz2.先安装libevent:
#tarzxvflibevent-1.2.tar.gz
#cdlibevent-1.2
#./configure--prefix=/usr
#make
# make install3.测试libevent是否安装成功:
#ls-al/usr/lib|greplibevent
lrwxrwxrwx1rootroot2111??1217:38libevent-1.2.so.1->libevent-1.2.so.1.0.3
-rwxr-xr-x1rootroot26354611??1217:38libevent-1.2.so.1.0.3
-rw-r--r--1rootroot45415611??1217:38libevent.a
-rwxr-xr-x1rootroot81111??1217:38libevent.la
lrwxrwxrwx1rootroot2111??1217:38libevent.so->libevent-1.2.so.1.0.3
还不错,都安装上了。4.安装memcached,同时需要安装中指定libevent的安装位置:
#cd/tmp
#tarzxvfmemcached-1.2.0.tar.gz
#cdmemcached-1.2.0
#./configure--with-libevent=/usr
#make
#makeinstall
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached ,5.测试是否成功安装memcached:
#ls-al/usr/local/bin/mem*
-rwxr-xr-x1rootroot13798611??1217:39/usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debugmemcached的基本设置:
1.启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -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,2.如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`memcache的运行状态可以方便的用 stats 命令显示。
首先用telnet127.0.0.111211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
这些状态的说明如下:
pid memcache服务器的进程ID uptime 服务器已经运行的秒数 time 服务器当前的unix时间戳 version memcache版本 pointer_size 当前操作系统的指针大小(32位系统一般是32bit) rusage_user 进程的累计用户时间 rusage_system 进程的累计系统时间 curr_items 服务器当前存储的items数量 total_items 从服务器启动以后存储的items总数量 bytes 当前服务器存储items占用的字节数 curr_connections 当前打开着的连接数 total_connections 从服务器启动以后曾经打开过的连接数 connection_structures 服务器分配的连接构造数 cmd_get get命令(获取)总请求次数 cmd_set set命令(保存)总请求次数 get_hits 总命中次数 get_misses 总未命中次数 evictions 为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items) bytes_read 总读取字节数(请求字节数) bytes_written 总发送字节数(结果字节数) limit_maxbytes 分配给memcache的内存大小(字节) threads 当前线程数 stats items
输出各个slab中的item信息。s
statsslabs
输出slab中更详细的item信息
statssizes
输出所有item的大小和个数stats cachedump <slab_id> <limit_num>
根据<slab_id>输出相同的<slab_id>中的item信息。<limit_num>是输出的个数,当<limit_num>为0是输出所有的item。
利用shell命令操作Memcached
1、数据存储(假设key为g,value为12345)
printf "set g 0 0 5\r\n12345\r\n"|nc 127.0.0.1 11211
STORED
2、数据取回(假设key为zhangyan)
printf "get g\r\n"|nc 127.0.0.1 11211
VALUE g 0 5
12345
END3、数值增加1(假设key为g,并且value为正整数)
printf "incr g 1\r\n" | nc 127.0.0.1 11211
12346
4、数值减少3(假设key为g,并且value为正整数)
printf "decr g 3\r\n" | nc 127.0.0.1 11211
12343
5、数据删除(假设key为g)
printf "delete g\r\n" | nc 127.0.0.1 11211
DELETED
6、查看Memcached状态
printf "stats\r\n" | nc 127.0.0.1 11211
STAT pid 3025
STATuptime4120500
STATtime1228021767
STATversion1.2.6
STATpointer_size32
STATrusage_user433.463103
STATrusage_system1224.515845
STATcurr_items1132460
STATtotal_items8980260
STATbytes1895325386
STATcurr_connections252
STATtotal_connections547850
STATconnection_structures1189
STATcmd_get13619685
STATcmd_set8980260
STATget_hits6851607
STATget_misses6768078
STATevictions0
STATbytes_read160396238246
STATbytes_written260080686529
STATlimit_maxbytes2147483648
STATthreads1
END7、模拟top命令,实时查看,查看Memcached状态:
watch "printf 'stats\r\n' | nc 127.0.0.1 11211"
或者
watch "echo stats | nc 127.0.0.1 11211"一、echo stats items | nc127.0.0.1 11211
STATitems:1:number998SlabId=1;items数量:998(也就是已经存储了998个key值)
STATitems:1:age604348SlabId=1;已经存在时间,单位秒
STATitems:1:evicted0SlabId=1;被踢出的数量
STATitems:1:evicted_nonzero0
STATitems:1:evicted_time0
STATitems:1:outofmemory0
STATitems:1:tailrepairs0
STATitems:1:reclaimed0
STATitems:6:number91897SlabId=6;items数量:91897(也就是已经存储了91897个key值)
STATitems:6:age604345SlabId=6;已经存在时间,单位秒
STATitems:6:evicted0SlabId=6;被踢出的数量
STATitems:6:evicted_nonzero0
STATitems:6:evicted_time0
STATitems:6:outofmemory0
STATitems:6:tailrepairs0
STATitems:6:reclaimed0
参考资料:对Memcached有疑问的朋友可以参考下列文章:
Linux下的Memcache安装:http://www.ccvita.com/257.html
Windows下的Memcache安装:http://www.ccvita.com/258.html
Memcache基础教程:http://www.ccvita.com/259.html
Discuz!的Memcache缓存实现:http://www.ccvita.com/261.html
Memcache协议中文版:http://www.ccvita.com/306.html
Memcache分布式部署方案:http://www.ccvita.com/395.html