memcached基本操作指令
item执行命令:
第一行:Key Flags ExpirationTime Bytes
Key:Key 用于查找缓存值
Flags:一个32位的标志值,客户机使用它存储关于键值对的额外信息
Expiration time:在缓存中保存键值对的时长(以秒为单位,0表示永远)
Bytes:在缓存中存储的字节数
第二行:Value:存储的值(始终位于第二行)
noreply :可以在命令的第一行后面加入noreply,以避免在处理交互命令的时候,等待服务端的返回
向Memcached写入值
命令有:set、add、replace、append、prepend、cas
- set:用于向缓存添加新的键值对,如果键已经存在,则之前的值将被替换
- add:仅当缓存中不存在键时,add命令才会向缓存中添加一个键值对,如果缓存中已经存在键,则之前的值将仍然保持,服务器响应 NOT_STORED
- replace:仅当键已经存在时,replace命令才会替换缓存中的键。如果缓存中不存在键,服务器响应NOT_STORED
- append:是在现有缓存数据后面新增数据。如果key不存在,服务器响应NOT_STORED
- prepend:是在现有缓存数据前面新增数据。如果key不存在,服务器响应NOT_STORED
- cas(Check And Set ):检查和更新,只有从你读取数据后,别人没有更新这个数据,才能够正确保存。就是版本控制,通常和gets配合使用
获取数据的命令有:get 、 gets
get用来获取数据,gets获取的是数据+版本号
删除数据的命令:delete
incr/decr命令:如果缓存数据中存储的是数字形式的字符串,则可以使用
incr/decr 对数据进行递增和递减操作,操作后的值不会为负数
分析调优指令
一、stats命令:提供命中率
分析命中率
13:cmd_get :获取请求数量
14:get_hits :获取成功的总次数,命中次数
15:get_misses :获取失败的总次数
分析对象LRU频率
42:curr_items :当前缓存 item 数量
43:total_items :从服务启动后,总的存储缓存 item 数量
44:evictions :通过删除 item 释放内存的次数
二、stats slabs区块统计:提供内存利用率
chunk_size:chunk大小,byte
chunks_per_page:每个page的chunk数量
total_pages:page数量
total_chunks:chunk数量*page数量
get_hits:get命中数
used_chunks:已被分配的chunk数
free_chunks:剩余chunk数
mem_requested:请求存储的字节数
active_slabs:slab数量
total_malloced:总内存数量
存储一个Item长度>96byte后slab变化
最新文章
- react路由案例(非常适合入门)
- 从setTimeout谈JavaScript运行机制
- Oracle CASE WHEN 用法介绍
- Xamarin.Android开发实践(十八)
- 查看80端口被占用的方法(IIS、apmserv、system)
- ArrStack——数组栈(procedure)
- 移动端版本兼容js
- V$LATCH_PARENT和V$LATCH_CHILDREN
- p1349星屑幻想
- ES6的语法
- 【视频】Entity Framework Core 2.* 入门教程
- 关于 Duplicate detection rules 自动 unpublish 的问题
- https://finance.sina.com.cn/realstock/company/sh600522/nc.shtml
- JVM(二)—— 垃圾回收
- JNative 传递参数bug
- [JSOI2018]列队(主席树)
- ACID、Data Replication、CAP与BASE
- sql 2005出现错误:数据库 'Twitter' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
- [na]timewait优化
- 3 并发编程-(进程)-join方法