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}区,查询条件格式{& ...
随机推荐
- 【Redis】一、Redis简介及五种数据类型
(一)Redis简介 Redis(Remote Dictionary Server)是一个使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value的开源 ...
- CF36E Two Paths (欧拉回路+构造)
题面传送门 题目大意:给你一张可能有重边的不保证联通的无向图,现在要在这个图上找出两条路径,恰好能覆盖所有边一次,根据边的编号输出方案,无解输出-1 一道很不错的欧拉路径变形题 首先要知道关于欧拉路径 ...
- Map的两种遍历方式
********************************************************************************* ****************** ...
- 37.分组聚合操作—其他metric
课程大纲 要学其他的metric(count,avg,max,min,sum) count:bucket,terms,自动就会有一个doc_count,就相当于是count avg:avg a ...
- 解决maven打包编译出现File encoding has not been set问题
maven打包编译时后台一直输出警告信息 [WARNING] File encoding has not been set, using platform encoding GBK, i.e. bui ...
- RDS For MySQL 字符集相关说明
https://help.aliyun.com/knowledge_detail/41706.html?spm=5176.7841698.2.9.F5YjI5 字符序命名规则 字符集相关 MySQL ...
- servlet和Spring的DispatcherServlet详解
Servlet是什么 1. Servlet是服务器端运行的一个程序,是一个被编译好的Java类.它不是框架等. 2. Web容器的启动,需要依赖Servlet.当web服务器开始执行时,servlet ...
- HTML5:去除IE10中输入框和密码框的X按钮和小眼睛
在IE10和之后的IE版本中,当在输入框和密码框中输入的时候,后面会自动出现X按钮和小眼睛,如下图所示: 令人苦恼的是,这个效果只有IE才有,其它浏览器是没有这个功能的.为了统一,我们就需要去掉这个 ...
- Win8.1下COCOS2D-X 3.4环境搭建
Cocos2dx_3.4开发环境搭建,并编译成APK 第一步:须要下载的:(windows64位系统下环境搭建) Ant apache-ant-1.9.4-bin.zip NDK and ...
- Codeforces Round #388 (Div. 2) C. Voting
题意:有n个人,每个人要么是属于D派要么就是R派的.从编号1开始按顺序,每个人都有一次机会可以剔除其他任何一个人(被剔除的人就不在序列中也就失去了剔除其他人的机会了):当轮完一遍后就再次从头从仅存的人 ...