Memcache Telnet基本操作命令
来源:互联网 发布:神秘的东方力量 知乎 编辑:程序博客网 时间:2024/05/16 19:00
一、概要介绍
在正确安装、启动Memcache服务后,接下来应该为需要使用Memcache服务的应用系统下载相应开发语言的客户端程序包(如Java版客户端,PHP的memcache扩展等),但这里我想先为各位介绍一下Memcache Telnet的基本操作,暂时能想到的原因如下:
1、Telnet是最方便的客户端访问工具,Linux自带或非常容易安装。
2、能够最方便、最直接的了解Memcache功能的基本使用,比如set,get命令的使用。
3、在应用系统运维期间,对Memcache的部分操作可以在Telnet中完成,如清空缓存,查看数据确认应用系统是否正常使用Memcache服务等。
4、为以后阅读Memcache客户端开发包打下基础,Memcache客户端其中一个核心的功能就是在代码里拼接Memcache的访问命令,然后通过Socket通信将命令传输到Memcache服务端节点。
二、telnet请求命令格式 <Command name> <key> <flags> <exptime> <bytes>\r\n
<data block> \r\n
简单解释 <Command name>
:可以是add,set,replace等 <key>
:为memcache key键的名称,要求唯一 <flags>
:是一个16位的无符号整数(10进制),该标志和需要存储的数据一起存储,并在客户端get数据时返回。客户可以将此标志用做特殊用途,此标志对服务器来说是透明的。 <exptime>
:过期的时间,单位为秒,设置为0表示永不过期。 <bytes>
:需要存储的字节数(不包含最后的“\r\n ”),可以为0,表示空数据。
\r\n:命令结尾标识符,在telnet界面输入命令时按回车键即可。 <data block>
:表示存储的数据内容,即value。
三、telnet命令响应
Stored 表示存储成功
not_stored:表示存储失败(命令正确,但操作不对)
Error:表示命令错误
四、常用命令
命令命令说明示例备注get获取值get mykey set设定一个值set mykey 0 60 5 add添加一个值add mykey 0 60 5 replace替换值replace mykey 0 60 5 append在后面追加值append mykey 0 60 5 prepend在前面追加值prepend mykey 0 60 5 incr数值类的值增加给定数字值incr mykey 2 decr数值类的值减少给定数字值decr mykey 5 flush_all刷新items:有两种使用方法 ,立即刷新和延迟指定时间后刷新。flush_all /flush_all 100立即刷新;/延迟N秒后刷新; stats普通stats查询stats 内存块使用查询stats slabs显示各个slab的信息,包括chunk的大小,数目,使用情况等 (不能使用了)stats malloc 查询分配的itemstats items显示各个slab中item的数目和最老item的年龄 stats详细信息操作命令,有on/off/dump三个选项stats detail on 统计数量stats sizes 重置stats reset清空统计数据version查看服务端版本version verbosity提升日志级别,有info/error级别可供选择verbosity info quit退出quit注意:
1)get,set等命令执行完后,敲回车,输入值的内容,再敲回车即可看到stored字样。
2)add,set,replace等命令操作同一个item时,超时时间 以最后一个为准。
3)incr/decr命令,decr的结果最小为0,不会出现负数的情况。
五、stats 命令详解
名称说明示例pidmemcache服务器的进程IDSTAT pid 2713uptime服务器已经运行的秒数STAT uptime 315time服务器当前的unix时间戳STAT time 1451121349versionmemcache版本STAT version 1.4.25pointer_size当前操作系统的指针大小(32位系统一般是32bit,64位系统为64)STAT pointer_size 64rusage_user进程的累计用户时间STAT rusage_user 0.001999rusage_system进程的累计系统时间STAT rusage_system 0.081987curr_items服务器当前存储的items数量STAT curr_items 0total_items从服务器启动以后存储的items总数量STAT total_items 2bytes当前服务器存储items占用的字节数STAT bytes 0curr_connections当前打开着的连接数STAT curr_connections 5total_connections从服务器启动以后曾经打开过的连接数STAT total_connections 6connection_structures服务器分配的连接构造数STAT connection_structures 6cmd_getget命令(获取)总请求次数STAT cmd_get 5cmd_setset命令(保存)总请求次数STAT cmd_set 2get_hits总命中次数STAT get_hits 3get_misses总未命中次数STAT get_misses 2evictions为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)STAT evictions 0bytes_read总读取字节数(请求字节数)STAT bytes_read 137bytes_written总发送字节数(结果字节数)STAT bytes_written 1258limit_maxbytes分配给memcache的内存大小(字节)STAT limit_maxbytes 134217728threads当前线程数STAT threads 4注意:输入命令返回的示例,都带了STAT 前缀的。
Memcache1.4.25 stats命令新增了较多新的属性,此列表列举的还是较老版本的属性,未列出的属性可根据名称了解大致的作用即可。
六、stats slabs命令详解
显示各个slab的信息,包括Chunk的大小,数目,使用情况等。
注意:
1)total_chunks的两则计算公式
total_chunks=used_chunks+free_chunks+free_chunks_end
total_chunks=chunks_per_page *total_pages
2)输入命令返回的示例,都带了STAT 1前缀的,1为slab编号。最后两行其实是该命令的统计行,注意前缀为STAT 。
七、stats imtes命令详解
显示各个slab中的item的数目和最老item的年龄(最后一次访问距离现在的秒数)
注意:
1)输入命令返回的示例,都带了STAT items:1前缀的,1为slab的编号。
2)如果evicted的个数很大,说明需要经常剔除,那么就是节点分配的内存不够,若reclaimed的个数很大,则说明经常会有超时现象,那么缓存的时间应该设置长些。
3)这里有几个参数都是跟memcache的LRU内存替换算法相关的,在memcache源码的item.c类里,各位有兴趣可作深入研究。
八、Stats命令观测
1、limit_maxbytes,bytes
limit_maxbytes为总的存储大小,而bytes就是已经使用的大小,从这两个数据就可以看出在memcache启动时,我们的内存是否足够使用。
2、cmd_get,cmd_set
可以查看应用程序一共对它做了多少次读取操作。
3、get_hits,get_missess
用来评估缓存命中率,可以评估我们使用的策略是否合理。
get_hits表示命中了多少次读取,get_misses表示没有命中的次数。一般来说:cmd_get=get_hits+get_missess。
命中率计算:命中率=(get_hits/cmd_get) *100%。
4、flush_all
并不会将item直接删除,只是将所有的items标记为expired,因此这时memcache依旧占有所有内存
问:什么时候会清内存?等待GC?
九、高级缓存细节查看方法
1、stats cachedump slab_id limit_num
显示某个slab中的前limit_num个key列表,slab_id为slab的id号,通过命令stats slabs得到。
列表格式:
ITEM key_name [value_length b; expire_times s]
其中,1.2.4版本以上显示的是过期时间,若永不过期,expire_time会显示为服务器启动时间。value_length后面的b为长度单位,固定显示符为b,表示byte。
例:添加缓存对象 add a 0 60 2 (value为bb)则列表为
ITEM a [2b; 1442649438 s]
2、stats detail [on/off/dump]
设置或者显示详细操作记录
on:打开详细操作记录
off:关闭详细操作记录
dump:显示详细操作记录(每一个键值get,set,hit,del的次数)
问:操作记录在哪儿能看到?是不是在memcached的日志里?
3、memcache cas操作
搭配gets一起使用,用来解决并发的一些问题。
gets可以查询出当前的唯一版本号。
cas带更新时,要带上最新的版本号,否则更新失败。
示例(假设key值为aa)
cas命令解释
注意:cas的唯一版本号必须是gets的最新值,否则更新失败,会提示Exists。操作正常提示STORED,如下图所示,当前最新版本号为2
原文地址:http://blog.csdn.net/dailywater/article/details/50783636
- Memcache Telnet基本操作命令
- Memcache Telnet基本操作命令
- memcache telnet 使用命令
- memcache(使用telnet操作)
- memcache(使用telnet操作)
- memcache(使用telnet操作)
- memcache(使用telnet操作)
- 在telnet下操作memcache详解(操作命令详解)
- telnet命令测试memcache服务
- memcache 启动、telnet命令(转)
- memcache telnet 操作 维护 小结
- Memcache[3]telnet操作Memcached
- memcache基本命令
- 【memcache】的基本命令
- memcache及其telnet命令使用详解
- memcache及其telnet命令使用详解
- Memcache的操作命令
- Linux memcache操作命令
- Image Morphology(图像形态学)
- jquery中bind,live,on,one,delegate的区分
- heartbeat(高可用)+LVS(负载均衡+健康检查)服务配置(apache测试)
- iOS--KVO的实现原理与具体应用
- Android低功耗蓝牙 升级 5.0以上的BLE开发
- Memcache Telnet基本操作命令
- lua脚本 记录到指定文件-示例
- Yii框架的挂件的使用
- 剑指offer-替换空格
- 关于Filter(过滤器)的源码翻译(二)---FilterConfig
- transition不支持display属性
- class-dump
- 柯洁本是围棋好男儿,不敌AlphaGo有何妨?为柯洁加油!
- CentOS 6/7 x86_64更换4.9版本内核,支持Google BBR拥塞控制算法