上一篇介绍了Memcached基本使用方法《Memcached使用手册》,下面介绍java如何操作memcached。使用的是java_memcached-release_2.6.6。

一、使用方法

新建项目,添加相关jar包:

直接上代码了,注释写的很详细,不用多说了啊。

package www.xufei.com;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool; public class MemcachedDemo { public static void main(String[] args) {
//memcached服务器
String[] servers = {"127.0.0.1:11211","192.168.1.3:11211"};
/**
* 设置连接池可用cache服务器的权重,和server数组的位置一一对应
*/
Integer[] weights = {1,2};
/**
* 这个类用来创建管理客户端和服务器通讯连接池,客户端主要的工作包括数据通讯、服务器定位、hash码生成等都是由这个类完成的。
* 获得连接池的单态方法。这个方法有一个重载方法getInstance( String poolName ),每个poolName只构造一个SockIOPool实例。
* 缺省构造的poolName是default。
*/
SockIOPool pool = SockIOPool.getInstance();
//设置memcached服务器
pool.setServers(servers);
//设置memcached服务器权重
pool.setWeights(weights);
//设置容错开关设置为TRUE,当当前socket不可用时,程序会自动查找可用连接并返回,否则返回NULL,默认状态是true,建议保持默认
pool.setFailover( true );
//设置开始时每个cache服务器的可用连接数
pool.setInitConn( 10 );
//设置每个服务器最少可用连接数
pool.setMinConn( 5 );
//设置每个服务器最大可用连接数
pool.setMaxConn( 250 );
/**
* 设置连接池维护线程的睡眠时间
* 设置为0,维护线程不启动
* 维护线程主要通过log输出socket的运行状况,监测连接数目及空闲等待时间等参数以控制连接创建和关闭。
*/
pool.setMaintSleep( 30 );
/**
* 设置是否使用Nagle算法,因为我们的通讯数据量通常都比较大(相对TCP控制数据)而且要求响应及时,因此该值需要设置为false(默认是true)
*/
pool.setNagle( false );
/**
* 设置socket的读取等待超时值
*/
pool.setSocketTO( 3000 );
/**
* 设置连接心跳监测开关。
* 设为true则每次通信都要进行连接是否有效的监测,造成通信次数倍增,加大网络负载,因此该参数应该在对HA要求比较高的场合设为TRUE,默认状态是false。
*/
pool.setAliveCheck( true );
/**
* 设置完pool参数后最后调用该方法,启动pool。
*/
pool.initialize(); /**
* 创建一个memcached客户端,所有对memcached中数据操作的方法都在这个类里面
*/
MemCachedClient memCachedClient = new MemCachedClient();
/**
* 存储一个username,值为刘德华,存储成功返回true
*/
boolean success = memCachedClient.set("username", "刘德华");
System.out.println(success); /**
* 从缓存中获取一个key为username的数据
*/
Object o = memCachedClient.get("username");
System.out.println(o); /**
* 定义一个p对象,Persion类必须实现Serializable接口
*/
Persion p = new Persion();
p.setId("1");
p.setName("周杰伦"); /**
* 缓存一个p对象
*/
memCachedClient.set("p1", p); /**
* 获取缓存的p对象
*/
Persion p1 = (Persion) memCachedClient.get("p1");
System.out.println(p1.getName()); /**
* 调用add方法添加一个key为p1的对象,值123是不能添加进缓存的,因为p1已经添加过一次了
*/
memCachedClient.add("p1", 123);//错误!无法更新p1的值 System.out.println(memCachedClient.get("p1"));//还是person对象 /**
* 使用set方法可以更新p1
*/
memCachedClient.set("p1", 123);
System.out.println(memCachedClient.get("p1"));//输出123 /**
* 使用replace方法可以更新p1
*/
memCachedClient.replace("p1", 456);
System.out.println(memCachedClient.get("p1"));//输出456 /**
* 使用replace方法可以更新p2,缓存中不含有key为p2的数据,无法更新,不会添加
*/
memCachedClient.replace("p2", 456);
System.out.println(memCachedClient.get("p2"));//输出null /**
* 删除key为p1的缓存数据
*/
memCachedClient.delete("p1");
System.out.println(memCachedClient.get("p1"));//输出null
}
}

  

二、常用方法说明

1、SockIOPool 是socket 连接池类

setServers(String[] servers) :设置服务器信息数组;

setWeights(String[] weights) :设置服务器权重数组;

setInitConn(int count) :设置初始连接数;

setMinConn(int minConn) :设置最小连接数;

setMaxConn(int maxConn) :设置最大连接数;

setMaxIdle(long arg0) :设置最大处理时间;

setMaintSleep(long arg0) :主线程的睡眠时间;

initialize() :初始化连接池。

2、MemCachedClient 类及其常用方法

add(String key, Object value) :添加一个键值对到缓存中;

add(String key, Object value,Date expires) :添加一个键值对到缓存中,并设置其超时时间;

set(String key, Object value) :在缓存中设置一个键的值;

set(String key, Object value, Date expires) :在缓存中设置一个键的值,并设置其超时时间;

get(String key) :获得某个键的值。

incr(String key) :为某个键上的值执行+1 操作;

decr(String key) :为某个键上的值执行-1 操作;

replace(String key, String value) :将某个键的值替换成新的值;

replace(String key, String value, Date expires) :将某个键的值替换成新的值,并设置其超时时间。

delete(String key):删除缓存中一个key的值

 

MemcachedClient 使用说明的更多相关文章

  1. Atitit.项目修改补丁打包工具 使用说明

    Atitit.项目修改补丁打包工具 使用说明 1.1. 打包工具已经在群里面.打包工具.bat1 1.2. 使用方法:放在项目主目录下,执行即可1 1.3. 打包工具的原理以及要打包的项目列表1 1. ...

  2. awk使用说明

    原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...

  3. “我爱背单词”beta版发布与使用说明

    我爱背单词BETA版本发布 第二轮迭代终于画上圆满句号,我们的“我爱背单词”beta版本已经发布. Beta版本说明 项目名称 我爱背单词 版本 Beta版 团队名称 北京航空航天大学计算机学院  拒 ...

  4. Oracle 中 union 和union all 的简单使用说明

    1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...

  5. Map工具系列-02-数据迁移工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  6. Map工具系列-03-代码生成BySQl工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  7. jQuery验证控件jquery.validate.js使用说明

    官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 转载 ...

  8. gdbsever 使用说明

    gdbsever 使用说明 在新塘N3292x平台下 编译 gdbsever ./configure --target=arm-linux --host=arm-linux arm-linux-gdb ...

  9. mongoVUE的增删改查操作使用说明

    mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...

随机推荐

  1. cogs——49. 跳马问题

    49. 跳马问题 水题 dfs裸基础 #include<cstdio> using namespace std; ]={,,,,}, ans,my[]={,-,,-,}; inline v ...

  2. P1638 逛画展

    题目描述 博览馆正在展出由世上最佳的 M 位画家所画的图画. wangjy想到博览馆去看这几位大师的作品. 可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必须说明两个数字, a和b,代表他要看 ...

  3. C#学习笔记_08_面向对象

    08_面向对象 面向对象:一种看待问题解决问题的思维方式,着眼点在于找到一个能够帮助我们解决问题的实体,然后委托这个实体来帮我们解决问题:(在面向对象之前你要有一个女朋友,否则代码会经常出现bug) ...

  4. Huawei-R&S-网络工程师实验笔记20190525-设备登录、VRP基本配置、文件系统

    >Huawei-R&S-网络工程师实验笔记20190525-设备登录.VRP基本配置.文件系统(环回接口.telnet远程.AAA登录.命令行.时钟.banner.文件目录) >& ...

  5. h5知识总结

    移动开发基本知识点一. 使用rem作为单位 html { font-size: 100px; } @media(min-width: 320px) { html { font-size: 100px; ...

  6. Git学习总结(13)——使用git.oschina作为自己的源代码在线管理库

    工作有几年了,期间积累了很多的代码片段,一直想找个存放的地方,方便随时的取用.以前可能是放在自己电脑的硬盘中,但毕竟这样使用起来还是有很多不便. 下面通过码云来说明 一下设置过程.其实,码云和GitH ...

  7. nyoj 307

    /*这是一道最短路变形题 从每个有藏宝的地方为起点 求到各个点的可以的最大重量,相当于求出了从出口 到 一个藏宝点 所  允许的最大重量,把所有藏宝点的按重量 排序(从小到大)先到最小的藏宝点带上 宝 ...

  8. SQL Server 日志

    http://www.cnblogs.com/CareySon/category/354290.html http://blog.csdn.net/tjvictor/article/details/5 ...

  9. 解决Linux ssh登录马上退出问题

    纠结了非常久,最终找到解决方法: 把sshd_config文件里的UsePAM改成no就能够了

  10. GPS-Graph Processing System 改动源代码经验总结 (四)

    HamaWhite原创,转载请注明出处.欢迎大家增加Giraph 技术交流群: 228591158 本文目的:在改动GPS源代码后,具体描写叙述怎样编译和分发到各Worker节点上. 以下以Graph ...