memcache安装部署

来源:互联网 发布:使命召唤账号数据异常 编辑:程序博客网 时间:2024/05/21 08:44

安装部署

memcached安装需要libevent包的支持

1 wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz2 tar xvzf libevent-1.4.14b-stable.tar.gz3 ln -s /usr/local/libevent-1.4.14b-stable /usr/local/libevent4 cd /usr/local/libevent5 ./configure6 make7 make install
安装memcached

1 wget http://www.memcached.org/files/memcached-1.4.20.tar.gz2 tar xvzf memcached-1.4.20.tar.gz3 ln -s /usr/local/memcached-1.4.20 /usr/local/memcached4 ./configure --with-libevent=/usr/local/libevent/5 make6 make install

如果没有出错,安装成功


启动memcached服务

一般情况下,简单的可以使用类似如下形式启动memcached服务:

/usr/local/bin/memcached -d -m 64 -I 20m -u root -l 192.168.2.129  -p 11211 -c 1024 -P /usr/local/memcached/memcached.pid
上述命令行中,基于上面各个选项,以及其他一些选项的含义,说明如下表所示:上述命令行中,基于上面各个选项,以及其他一些选项的含义,说明如下表所示:

选项含义说明-d指定memcached进程作为一个守护进程启动-m <num>指定分配给memcached使用的内存,单位是MB-u <username>运行memcached的用户-l <ip_addr>监听的服务器IP地址,如果有多个地址的话,使用逗号分隔,格式可以为“IP地址:端口号”,例如:-l 指定192.168.0.184:19830,192.168.0.195:13542;端口号也可以通过-p选项指定-p <num>Memcached监听的端口,要保证该端口号未被占用-c <num>设置最大运行的并发连接数,默认是1024-R <num>为避免客户端饿死(starvation),对连续达到的客户端请求数设置一个限额,如果超过该设置,会选择另一个连接来处理请求,默认为20-k设置锁定所有分页的内存,对于大缓存应用场景,谨慎使用该选项-P保存memcached进程的pid文件-s <file>指定Memcached用于监听的UNIX socket文件-a <perms>设置-s选项指定的UNIX socket文件的权限-U <num>指定监听UDP的端口,默认11211,0表示关闭-M当内存使用超出配置值时,禁止自动清除缓存中的数据项,此时Memcached不可以,直到内存被释放-r设置产生core文件大小-f <factor>用于计算缓存数据项的内存块大小的乘数因子,默认是1.25-n为缓存数据项的key、value、flag设置最小分配字节数,默认是48-C禁用CAS-h显示Memcached版本和摘要信息-v输出警告和错误信息-vv打印信息比-v更详细:不仅输出警告和错误信息,也输出客户端请求和响应信息-i打印libevent和Memcached的licenses信息-t <threads>指定用来处理请求的线程数,默认为4-D <char>用于统计报告中Key前缀和ID之间的分隔符,默认是冒号“:”-L尝试使用大内存分页(pages)-B <proto>指定使用的协议,默认行为是自动协商(autonegotiate),可能使用的选项有auto、ascii、binary。-I <size>覆盖默认的STAB页大小,默认是1M-F禁用flush_all命令-o <options>指定逗号分隔的选项,一般用于用于扩展或实验性质的选项


停止memcache

可以通过Linux的如下命令查询到Memcached的进程号:

1ps -ef | grep memcached
然后杀掉Memcached服务进程:
1kill -9 <PID>
-9表示强制杀掉进程。
Memcached启动以后,可以通过客户端来操作缓存中的数据,我们说明一些常用的客户端,及其使用方法。


Telnet客户端

Telnet客户端可以通过命令行的方式来监控查看Memcached服务器存储数据的情况。例如,Memcached的服务地址为192.168.4.86:11211,可以telnet到该服务端口:

telnet 192.168.4.86 11211
如果连接成功,可以使用如下一些命令:

stats命令

STAT pid 22362                                              //memcache服务器的进程ID  www.2cto.com02  STAT uptime 1469315                               //服务器已经运行的秒数03  STAT time 1339671194                              //服务器当前的unix时间戳04  STAT version 1.4.9                                     //memcache版本05  STAT libevent 1.4.9-stable                         //libevent版本06  STAT pointer_size 64                                 //当前操作系统的指针大小(32位系统一般是32bit,64就是64位操作系统)07  STAT rusage_user 3695.485200                  //进程的累计用户时间08  STAT rusage_system 14751.273465            //进程的累计系统时间09  STAT curr_connections 69                         //服务器当前存储的items数量10  STAT total_connections 855430                 //从服务器启动以后存储的items总数量11  STAT connection_structures 74                  //服务器分配的连接构造数12  STAT reserved_fds 20                                 //13  STAT cmd_get 328806688                          //get命令(获取)总请求次数14  STAT cmd_set 75441133                            //set命令(保存)总请求次数  www.2cto.com15  STAT cmd_flush 34                                    //flush命令请求次数16  STAT cmd_touch 0                                    //touch命令请求次数17  STAT get_hits 253547177                           //总命中次数18  STAT get_misses 75259511                        //总未命中次数19  STAT delete_misses 4                                //delete命令未命中次数20  STAT delete_hits 565730                           //delete命令命中次数21  STAT incr_misses 0                                   //incr命令未命中次数22  STAT incr_hits 0                                       //incr命令命中次数23  STAT decr_misses 0                                  //decr命令未命中次数24  STAT decr_hits 0                                      //decr命令命中次数25  STAT cas_misses 0                                   //cas命令未命中次数26  STAT cas_hits 0                                        //cas命令命中次数27  STAT cas_badval 0                                   //使用擦拭次数28  STAT touch_hits 0                                    //touch命令未命中次数29  STAT touch_misses 0                               //touch命令命中次数30  STAT auth_cmds 0                                   //认证命令处理的次数31  STAT auth_errors 0                                  //认证失败数目32  STAT bytes_read 545701515844               //总读取字节数(请求字节数)33  STAT bytes_written 1649639749866         //总发送字节数(结果字节数)34  STAT limit_maxbytes 2147483648            //分配给memcache的内存大小(字节)35  STAT accepting_conns 1                         //服务器是否达到过最大连接(0/1)36  STAT listen_disabled_num 0                    //失效的监听数37  STAT threads 4                                       //当前线程数38  STAT conn_yields 14                               //连接操作主动放弃数目39  STAT hash_power_level 16                      //40  STAT hash_bytes 52428841  STAT hash_is_expanding 042  STAT expired_unfetched 3070576343  STAT evicted_unfetched 044  STAT bytes 61380700                             //当前存储占用的字节数45  STAT curr_items 28786                           //当前存储的数据总数46  STAT total_items 75441133                     //启动以来存储的数据总数47  STAT evictions 0                                     //为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)48  STAT reclaimed 39957976                       //已过期的数据条目来存储新数据的数目

memcache命令:

命令语法:

1 存储命令的格式:

<command name> <key> <flags> <exptime> <bytes>

<data block>

解释:

<command name>: set/add/replace

<key>:  存储的键名

<flag>: 客户机使用它存储关于键值对的额外信息  数字类型

<exptime>: 该数据的存活时间,0表示永远

<bytes>:存储的value的值得字节数,比如 value='super',则bytes=5

<data block>: key-value的value



命令用法格式含义说明示例getget <key>*\r\n用于获取缓存的数据,键为key。get name
VALUE name 0 7
shirdrn
END
getsgets <key>*\r\n用于获取缓存的数据,键为一组key。gets name hobby
VALUE name 1 7
1234567
VALUE hobby 0 25
tenis basketball football
ENDsetset <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n向缓存中存储数据,不管key对应的值存在与否,都设置key对应的值。set name 0 1800 7
shirdrn
STORED
get name
VALUE name 0 7
shirdrn
ENDtouchtouch <key> <exptime> [noreply]\r\n更新缓存中key对应的值的过期时间。touch name 1800deletedelete <key> [<time>] [noreply]\r\n给定键key,删除缓存中key对应的数据。delete name 60addadd <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n向缓存中存储数据,只有key对应的值不存在时,才会设置key对应的值。add hobby 0 1800 10
basketball
STORED
get hobby

VALUE hobby 0 10
basketball
END

replacereplace <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n覆盖一个已经存在Key及其对应的Value,替换一定要保证替换后的值的长度原始长度相同,否则replace失败。get name
VALUE name 0 7
shirdrn
END
replace name 0 1800 7
youak47
STORED
get name
VALUE name 0 7
youak47
ENDappendappend <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n在一个已经存在的数据值(value)上追加,是在数据值的后面追加。get hobby
VALUE hobby 0 10
basketball
END
append hobby 0 1800 9
football
STORED
get hobby
VALUE hobby 0 19
basketball football
ENDprependprepend <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n在一个已经存在的数据值(value)上追加,是在数据值的前面追加。get hobby
VALUE hobby 0 19
basketball football
END
prepend hobby 0 1800 6
tenis
STORED
get hobby
VALUE hobby 0 25
tenis basketball football
ENDincrincr <key> <value> [noreply]\r\n计数命令,可以在原来已经存在的数字上进行累加求和,计算并存储新的数值。set active_users 0 1000000 7
1000000
STORED
get active_users
VALUE active_users 0 7
1000000
END
incr active_users 99
1000099decrdecr <key> <value> [noreply]\r\n计数命令,可以在原来已经存在的数字上进行减法计算,计算并存储新的数值。get active_users
VALUE active_users 0 7
1000099
END
decr active_users 3456
996643flush_allflush_all [<time>] [noreply]\r\n使缓存中的数据项失效,可选参数是在多少秒后失效。flush_all 1800versionversion\r\n返回Memcached服务器的版本信息。versionquitquit\r\n退出telnet终端。quit

文章引用:http://shiyanjun.cn/archives/873.html
0 0
原创粉丝点击