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.gz

2.先安装libevent:

#tarzxvflibevent-1.2.tar.gz

#cdlibevent-1.2

#./configure--prefix=/usr

#make

# make install

3.测试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-debug

memcached的基本设置

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的状态。

这些状态的说明如下:
pidmemcache服务器的进程ID
uptime服务器已经运行的秒数
time服务器当前的unix时间戳
versionmemcache版本
pointer_size当前操作系统的指针大小(32位系统一般是32bit)
rusage_user进程的累计用户时间
rusage_system进程的累计系统时间
curr_items服务器当前存储的items数量
total_items从服务器启动以后存储的items总数量
bytes当前服务器存储items占用的字节数
curr_connections当前打开着的连接数
total_connections从服务器启动以后曾经打开过的连接数
connection_structures服务器分配的连接构造数
cmd_getget命令(获取)总请求次数
cmd_setset命令(保存)总请求次数
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

     END

    3、数值增加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

 END

7、模拟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

相关推荐