memcache安装部署

安装部署

memcached安装需要libevent包的支持

1 wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz
2 tar xvzf libevent-1.4.14b-stable.tar.gz
3 ln -s /usr/local/libevent-1.4.14b-stable /usr/local/libevent
4 cd /usr/local/libevent
5 ./configure
6 make
7 make install
安装memcached

1 wget http://www.memcached.org/files/memcached-1.4.20.tar.gz
2 tar xvzf memcached-1.4.20.tar.gz
3 ln -s /usr/local/memcached-1.4.20 /usr/local/memcached
4 ./configure --with-libevent=/usr/local/libevent/
5 make
6 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的进程号:

1	ps -ef | grep memcached
然后杀掉Memcached服务进程:
1	kill -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.com
02  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.com
15  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 524288
41  STAT hash_is_expanding 0
42  STAT expired_unfetched 30705763
43  STAT evicted_unfetched 0
44  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
END
setset <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
END
touchtouch <key> <exptime> [noreply]\r\n更新缓存中key对应的值的过期时间。touch name 1800
deletedelete <key> [<time>] [noreply]\r\n给定键key,删除缓存中key对应的数据。delete name 60
addadd <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
END
appendappend <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
END
prependprepend <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
END
incrincr <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
1000099
decrdecr <key> <value> [noreply]\r\n计数命令,可以在原来已经存在的数字上进行减法计算,计算并存储新的数值。get active_users
VALUE active_users 0 7
1000099
END
decr active_users 3456
996643
flush_allflush_all [<time>] [noreply]\r\n使缓存中的数据项失效,可选参数是在多少秒后失效。flush_all 1800
versionversion\r\n返回Memcached服务器的版本信息。version
quitquit\r\n退出telnet终端。quit

文章引用:http://shiyanjun.cn/archives/873.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值