Memcached学习帖

1 篇文章 0 订阅
1 篇文章 0 订阅

set(可更新)

set key flags exptime bytes [noreply]
value
//set key 整型参数 缓存中保存键值对的时间长度 在缓存中存储的字节数 告知服务器不需要返回数据

add (不可更新)

add key flags exptime bytes [noreply]
value

repalce (不存在则失败)

replace key flags exptime bytes [noreply]
value

append(追加数据)

append key flags exptime bytes [noreply]
value

cas(数据没有被更新则写入)

cas key flags exptime bytes unique_cas_token [noreply]
value

get key1 key2 key3

gets key1 key2 key3(获取带有CAS令牌存的数据值)

delete key[noreply] (删除已存在的key)

incr key increment_value(对键值自增)

decr key decrement_value(对键值自减)

stats (返回统计信息)

• pid: memcache服务器进程ID
• uptime:服务器已运行秒数
• time:服务器当前Unix时间戳
• version:memcache版本
• pointer_size:操作系统指针大小
• rusage_user:进程累计用户时间
• rusage_system:进程累计系统时间
• curr_connections:当前连接数量
• total_connections:Memcached运行以来连接总数
• connection_structures:Memcached分配的连接结构数量
• cmd_get:get命令请求次数
• cmd_set:set命令请求次数
• cmd_flush:flush命令请求次数
• get_hits:get命令命中次数
• get_misses:get命令未命中次数
• delete_misses:delete命令未命中次数
• delete_hits:delete命令命中次数
• incr_misses:incr命令未命中次数
• incr_hits:incr命令命中次数
• decr_misses:decr命令未命中次数
• decr_hits:decr命令命中次数
• cas_misses:cas命令未命中次数
• cas_hits:cas命令命中次数
• cas_badval:使用擦拭次数
• auth_cmds:认证命令处理的次数
• auth_errors:认证失败数目
• bytes_read:读取总字节数
• bytes_written:发送总字节数
• limit_maxbytes:分配的内存总大小(字节)
• accepting_conns:服务器是否达到过最大连接(0/1)
• listen_disabled_num:失效的监听数
• threads:当前线程数
• conn_yields:连接操作主动放弃数目
• bytes:当前存储占用的字节数
• curr_items:当前存储的数据总数
• total_items:启动以来存储的数据总数
• evictions:LRU释放的对象数目
• reclaimed:已过期的数据条目来存储新数据的数目

stats items(显示各个slab中item的数量和存储时长)
stats slabs (显示各个slab的信息)
stats sizes (显示所有item的大小和个数)
flush_all [time] [noreply] (清理缓存中所有的键值对)

命令总结

zongjie

/*
**className:MemcachedJava.java
**Java 连接 Memcached
*/



import net.spy.memcached.MemcachedClient;
import java.net.*;
 
 
public class MemcachedJava {
   public static void main(String[] args) {
      try{
         // 本地连接 Memcached 服务
         MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("Memcached 服务的主机地址", 端口号));
         System.out.println("Connection to server sucessful.");
         
         // 关闭连接
         mcc.shutdown();
         
      }catch(Exception ex){
         System.out.println( ex.getMessage() );
      }
   }
}

Memcached的优化

提高Memcached访问命中,优先读取缓存

例:每次新增数据到数据库的同时,就将数据写入或者复制一份到Memcahced里面,然后从业务逻辑上让程序优先读缓存,没有数据再查数据库

提高内存利用率,减少内存浪费
  1. 减少chunk内存空间浪费的调优方法为根据业务数据大小,利用-n参数设定chunk的初始值,以及-fvans胡factor增长因子设置chunk的大小尽可能接近业务数据大小
  2. 减少slab的浪费,设定slab的大小为chunk的整数倍
  3. 采用一致性哈希分布式缓存集群架构

Memcached的特点

  • 协议简单 ·
  • 基于libevent的事件处理 ·
  • 内置内存存储方式
  • memcached不互相通信的分布式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值