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}区,查询条件格式{& ...
随机推荐
- SSHFS使用笔记
在写树莓派集群项目的时候,发现如果在树莓派上维护的代码需要非常费力才能跟本地项目代码同步,因此打算将Server端和Client端代码分开,树莓派上的Client端代码远程挂载到本地,这样做比之前要更 ...
- Sessions共享技术设计
概述 分布式session是实现分布式部署的前提, 当前项目由于历史原因未实现分布式session, 但是由于在kubernets中部署多个pod时, 负载均衡的调用链太长, 导致会话不能保持, 所以 ...
- Python 字符串和数字
Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...
- Django - 日志工作中常用配置
工作中常用配置 # 日志配置 BASE_LOG_DIR = os.path.join(BASE_DIR, "log") LOGGING = { 'version': 1, # 保留 ...
- 关于单片机编程里面调用sprintf死机的解决方法及原因分析
好久之前的做的笔记,这里贴出. char String[100];//直接用数组代替指针即可解决 下面代代码下载至单片机中,发现会出现单片机死机问题 #include "stdio.h&qu ...
- 6)STM32使用HAL库实现modbus的简单通讯
1.判断地址.校验 2.读取本机数据并校验打包 3.发送数据包 4.本机数据长度比要读取的长度短怎么办 4.校验错误怎么办
- 【模板】非旋转Treap
Treap,也叫做树堆,是指有一个随机附加域满足堆的性质的二叉搜索树. 如果一棵二叉搜索树插入节点的顺序是随机的,那我们得到的二叉搜索树在大多数情况下是平衡的,期望高度是log(n). 但有些情况下我 ...
- 【codeforces 514D】R2D2 and Droid Army
[题目链接]:http://codeforces.com/contest/514/problem/D [题意] 给你每个机器人的m种属性p1..pm 然后r2d2每次可以选择m种属性中的一种,进行一次 ...
- Javascript控制回车键进行表单(form)提交(转)
一.采用钩子事件去捕获 键盘事件有3个: keydown,keypress,keyup分别是按下,按着没上抬,上抬键盘 . $(document).keyup(function(event){ if( ...
- Windows安装php Oracle扩展
前言 去IOE的浪潮下,很多大型公司古董级的系统还在使用IOE设备.新东家有些年头的系统都是使用Oracle数据库,为了省事,新架构下的业务直接通过编程语言API操作Oracle数据库,安装相关扩展对 ...