MemcachedClient 使用说明
上一篇介绍了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 使用说明的更多相关文章
- Atitit.项目修改补丁打包工具 使用说明
Atitit.项目修改补丁打包工具 使用说明 1.1. 打包工具已经在群里面.打包工具.bat1 1.2. 使用方法:放在项目主目录下,执行即可1 1.3. 打包工具的原理以及要打包的项目列表1 1. ...
- awk使用说明
原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...
- “我爱背单词”beta版发布与使用说明
我爱背单词BETA版本发布 第二轮迭代终于画上圆满句号,我们的“我爱背单词”beta版本已经发布. Beta版本说明 项目名称 我爱背单词 版本 Beta版 团队名称 北京航空航天大学计算机学院 拒 ...
- Oracle 中 union 和union all 的简单使用说明
1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...
- Map工具系列-02-数据迁移工具使用说明
所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...
- Map工具系列-03-代码生成BySQl工具使用说明
所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...
- jQuery验证控件jquery.validate.js使用说明
官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 转载 ...
- gdbsever 使用说明
gdbsever 使用说明 在新塘N3292x平台下 编译 gdbsever ./configure --target=arm-linux --host=arm-linux arm-linux-gdb ...
- mongoVUE的增删改查操作使用说明
mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...
随机推荐
- php中fopen不能创建中文文件名文件的问题
之前网页的chartset用的是utf-8,文件也用utf-8,然后用fopen()创建一个中文文件名的文件时问题就出来了,文件名都是乱 码! 查看了很多文档试了不少方法都解决不了,本来想着用别的方法 ...
- hdu 1584 蜘蛛纸牌
把小的牌放到大的牌上,求最小移动的距离和 DFS遍历所有的可能,把每一张牌与之要移动的牌都进行两层for的循环,注意回溯条件满足立刻break 代码(算法借鉴) #include <bits/s ...
- 02. 爬取get请求的页面数据
目录 02. 爬取get请求的页面数据 一.urllib库 二.由易到难的爬虫程序: 02. 爬取get请求的页面数据 一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用 ...
- Python基础-while
使用while循环实现输出2-3+4-5+6.....+100的和. i = 2 sum=0 while i<=100: if i % 2 == 0: sum += i else: sum -= ...
- c# SQL事务
SQL事务执行 SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(); SqlCommand sqlC ...
- 敏捷开发系列学习总结(5)——这几招搞定团队协同Coding
一个团队在一起Coding时,就怕发生这样的事情:同1个文件你改了,我也改了,他也改了,最后怎么同步呢?以前用clearcase时,A把文件checkout了,其他人就不能提交,保证了代码的唯一性.但 ...
- Haybale Guessing
Haybale Guessing Time Limit: 1000MS Memory Limit: 65536K Description The cows, who always ha ...
- socket状态
SYN_SEND Indicates active open. SYN_RECEIVED Server just received SYN from the client. ESTABLISHED C ...
- POJ 3370 Halloween treats 鸽巢原理 解题
Halloween treats 和POJ2356差点儿相同. 事实上这种数列能够有非常多,也能够有不连续的,只是利用鸽巢原理就是方便找到了连续的数列.并且有这种数列也必然能够找到. #include ...
- linux下华为HSPA模块MU609的驱动问题
环境: CPU: s3c2416 Linux: 3.6 模块: HUAWEI MU609 SIM卡: 移动3G卡.移动4G卡 首先,拿到MU609模块后,第一要做的是对模块进行一些熟悉与了解,那么资料 ...