Memcached服务器安装、配置、使用详解
管理memcached服务
- 启动Memcached
一般情况下,简单地可以使用类似如下形式,启动Memcached服务:
/usr/local/bin/memcached -d -m 64 -I 20m -u root -l 192.168.4.86 -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> | 指定逗号分隔的选项,一般用于用于扩展或实验性质的选项 |
- 停止Memcached
可以通过Linux的如下命令查询到Memcached的进程号:
ps -ef | grep memcached
然后杀掉Memcached服务进程:
kill -9 <PID>
-9表示强制杀掉进程。
Memcached启动以后,可以通过客户端来操作缓存中的数据,我们说明一些常用的客户端,及其使用方法。
Telnet客户端
Telnet客户端可以通过命令行的方式来监控查看Memcached服务器存储数据的情况。例如,Memcached的服务地址为192.168.4.86:11211,可以telnet到该服务端口:
telnet 192.168.4.86 11211
如果连接成功,可以使用如下一些命令:
- stats命令
该命令用于显示服务器信息、统计数据等,结果示例数据(来自www.2cto.com网站),例如:
STAT pid 22362 //memcache服务器的进程ID www.2cto.com
STAT uptime 1469315 //服务器已经运行的秒数
STAT time 1339671194 //服务器当前的unix时间戳
STAT version 1.4.9 //memcache版本
STAT libevent 1.4.9-stable //libevent版本
STAT pointer_size 64 //当前操作系统的指针大小(32位系统一般是32bit,64就是64位操作系统)
STAT rusage_user 3695.485200 //进程的累计用户时间
STAT rusage_system 14751.273465 //进程的累计系统时间
STAT curr_connections 69 //服务器当前存储的items数量
STAT total_connections 855430 //从服务器启动以后存储的items总数量
STAT connection_structures 74 //服务器分配的连接构造数
STAT reserved_fds 20 //
STAT cmd_get 328806688 //get命令(获取)总请求次数
STAT cmd_set 75441133 //set命令(保存)总请求次数 www.2cto.com
STAT cmd_flush 34 //flush命令请求次数
STAT cmd_touch 0 //touch命令请求次数
STAT get_hits 253547177 //总命中次数
STAT get_misses 75259511 //总未命中次数
STAT delete_misses 4 //delete命令未命中次数
STAT delete_hits 565730 //delete命令命中次数
STAT incr_misses 0 //incr命令未命中次数
STAT incr_hits 0 //incr命令命中次数
STAT decr_misses 0 //decr命令未命中次数
STAT decr_hits 0 //decr命令命中次数
STAT cas_misses 0 //cas命令未命中次数
STAT cas_hits 0 //cas命令命中次数
STAT cas_badval 0 //使用擦拭次数
STAT touch_hits 0 //touch命令未命中次数
STAT touch_misses 0 //touch命令命中次数
STAT auth_cmds 0 //认证命令处理的次数
STAT auth_errors 0 //认证失败数目
STAT bytes_read 545701515844 //总读取字节数(请求字节数)
STAT bytes_written 1649639749866 //总发送字节数(结果字节数)
STAT limit_maxbytes 2147483648 //分配给memcache的内存大小(字节)
STAT accepting_conns 1 //服务器是否达到过最大连接(0/1)
STAT listen_disabled_num 0 //失效的监听数
STAT threads 4 //当前线程数
STAT conn_yields 14 //连接操作主动放弃数目
STAT hash_power_level 16 //
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 30705763
STAT evicted_unfetched 0
STAT bytes 61380700 //当前存储占用的字节数
STAT curr_items 28786 //当前存储的数据总数
STAT total_items 75441133 //启动以来存储的数据总数
STAT evictions 0 //为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
STAT reclaimed 39957976 //已过期的数据条目来存储新数据的数目
END
上面给出了各个统计项的含义说明,不再累述。 stats命令有几个二级子项,说明如下表所示:
命令 | 含义说明 |
stats slabs | 显示各个slab的信息,包括chunk的大小、数目、使用情况等 |
stats items | 显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数) |
stats detail [on|off|dump] | 设置或者显示详细操作记录; 参数为on,打开详细操作记录; 参数为off,关闭详细操作记录; 参数为dump,显示详细操作记录(每一个键值get、set、hit、del的次数) |
stats malloc | 打印内存分配信息 |
stats sizes | 打印缓存使用信息 |
stats reset | 重置统计信息 |
- get命令
用于获取缓存的数据,键为key。 用法格式:
get <key>*\r\n
示例如下所示:
get basis_behavior_user
结果示例,如下所示:
VALUE basis_behavior_user 0 451{"aaData":[["d1a2233dc382432b8e19e40254fdb98a","100000002223484","1402563046319","c4f82195815300bcf39a5232707ad9c1","1","0","EBEST_W70","4.0.4","2.2.2.","wifi","","EBEST","19","854*480","H-yun35","00:08:22:da:c1:ce","863531010517866","c4f82195815300bcf39a5232707ad9c11402562805664","460010255508963","1901589461","1402563045960","429","338","23197","1","0","0","2014-06-12_16:50:46","-1","0","3"]],"sEcho":1,"iTotalRecords":0,"iTotalDisplayRecords":0}
END
也可以get多个key对应的值,如下所示:
get name hobby
VALUE name 1 7
1234567
VALUE hobby 0 25
tenis basketball football
END
- set命令
用法格式:
set <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n
示例:
set name 0 1800 7
shirdrn
STORED
get name
VALUE name 0 7
shirdrn
END
- delete命令
给定键key,删除缓存中key对应的数据。
- add命令
用法格式:
add <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n
示例:
add hobby 0 1800 10
basketball
STORED
get hobby VALUE hobby 0 10
basketball
END
- replace命令
覆盖一个已经存在Key及其对应的Value,替换一定要保证替换后的值的长度原始长度相同,否则replace失败。 用法格式:
replace <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n
示例:
get name
VALUE name 0 7
shirdrn
END
replace name 0 1800 7
youak47
STORED
get name
VALUE name 0 7
youak47
END
- append命令
在一个已经存在的数据值(value)上追加,是在数据值的后面追加。 用法格式:
append <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n
示例:
get hobby
VALUE hobby 0 10
basketball
END
append hobby 0 1800 9
football
STORED
get hobby
VALUE hobby 0 19
basketball football
END
- prepend命令
在一个已经存在的数据值(value)上追加,是在数据值的前面追加。 用法格式:
prepend <key> <flags> <exptime> <bytes> [noreply]\r\n<value>\r\n
示例:
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
- incr命令
计数命令,可以在原来已经存在的数字上进行累加求和,计算并存储新的数值。 用法格式:
incr <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
- decr命令
计数命令,可以在原来已经存在的数字上进行减法计算,计算并存储新的数值。 用法格式:
decr <key> <value> [noreply]\r\n
示例:
get active_users
VALUE active_users 0 7
1000099
END
decr active_users 3456
996643
- flush_all命令
使缓存中的数据项失效,可选参数是在多少秒后失效。 用法格式:
flush_all [<time>] [noreply]\r\n
- version命令
返回Memcached服务器的版本信息。
- quit命令
退出telnet终端。
Memcached服务器安装、配置、使用详解的更多相关文章
- DNS服务器安装配置案例详解
案例配置要求:假设有一个域名:tianyik.com主机为:192.168.31.36 mail 192.168.31.37 www 192.168.31.38 pop --> ...
- 【转】nginx服务器安装及配置文件详解
原文:http://seanlook.com/2015/05/17/nginx-install-and-config/ nginx服务器安装及配置文件详解 nginx在工作中已经有好几个环境在使用了, ...
- reids配置参数详解
转自:http://www.jb51.net/article/60627.htm reids配置参数详解 #daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行, ...
- [转帖]nginx服务器安装及配置文件详解
nginx服务器安装及配置文件详解 http://seanlook.com/2015/05/17/nginx-install-and-config/ 发表于 2015-05-17 | 更新于: 2 ...
- redis.conf配置信息详解
redis.conf配置信息详解 配置文件 # Redis 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k =& ...
- ASP.NET Core的配置(2):配置模型详解
在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...
- mha配置参数详解
mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...
- Cocos2d-x win7 + vs2010 配置图文详解
Cocos2d-x win7 + vs2010 配置图文详解 下载最新版的cocos2d-x.打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为cocos2d ...
- CentOS7下Firewall防火墙配置用法详解
官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...
- Python安装、配置图文详解(转载)
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...
随机推荐
- hdu 5464 Clarke and problem dp
Clarke and problem Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php ...
- error when loading the sdk 发现了元素 d:skin 开头无效内容
把devices.xml这个文件删除,再把sdk里面tools\lib下的这个文件复制到你删除的那个目录里.重新启动eclipse
- [Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive
PM2 is a production process manager for Node.js applications with a built-in load balancer. It allow ...
- android学习日记12--布局管理器
1.概述 布局管理器的用途: a.可以更好的管理组件; b.通过使用布局管理器,Android应用程序可以做到平台无关性 布局管理器都是ViewGroup的子类,所有可充当容器的父类都是ViewGro ...
- UIWebView的使用,简单浏览器的实现
#import "ViewController.h" @interface ViewController () <UIWebViewDelegate> @propert ...
- oracle删除表语句
删除表(记录和结构)的语名delete ———— truncate ———— drop DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意 ...
- Android drawable里面的图片存在,但是getIdentifier或者findViewByid找不到时处理步骤
drawable里面的图片存在,但是getIdentifier或者findViewByid找不到时执行一下project -> clean
- Android_listView_BaseAdapter
layout.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" x ...
- Android NDK调试方式之一: adb logcat
查看程序执行过程中所打印的log信息,用于辅助调试排除代码错误. 一.采用NDK安装包下Samples/hello-jni工程做实验 1)修改jni/hello-jni.c文件 #include &l ...
- Content-type 对照表
Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式.什么编码读取这个文件,比如用PHP输出图片文件.JSON数 ...