java版的memcached client及…
来源:互联网 发布:mac进入屏保快捷键 编辑:程序博客网 时间:2024/06/06 12:50
假设我们有3台memcached 服务器,server1 和server2 有3GB 的内存空间,server3 有2GB的内存空间.
下面程序说明怎么来创建客户端.
import com.danga.MemCached.*;public class MyClass {
// 创建一个 memcached 客户端对象
protected static MemCachedClient mcc = new MemCachedClient();
// 创建
static{
// 指定memcached服务地址
String[] servers =
{ "server1.mydomain.com:1121","server2.mydomain.com:1121",
"server3.mydomain.com:1121" };
// 指定memcached服务器负载量
Integer[]
// 从连接池获取一个连接实例
SockIOPool pool = SockIOPool.getInstance();
// 设置服务器和服务器负载量
pool.setServers( servers );pool.setWeights( weights );
// 设置一些基本的参数
//设置初始连接数5
//设置一个连接最大空闲时间6小时
pool.setInitConn( 5 );
pool.setMinConn( 5 );
pool.setMaxConn( 250 );
pool.setMaxIdle( 1000 * 60 * 60 * 6 );
// 设置主线程睡眠时间
// 每隔30秒醒来
// 开始维护 连接数大小
pool.setMaintSleep( 30 );
// 设置tcp 相关的树形
// 关闭nagle算法
// 设置 读取 超时3秒钟
//
pool.setNagle( false );
pool.setSocketTO( 3000 );
pool.setSocketConnectTO( 0 );
// 开始初始化 连接池
pool.initialize();
// 设置压缩模式
//如果超过64k压缩数据
mcc.setCompressEnable( true );
mcc.setCompressThreshold( 64 * 1024 );
}
public static void examples() {
mcc.set( "foo", "This is a test String" );String bar = mcc.get("foo" );
}
}
//MemCachedClient 类 常用的方法说明创建 client对象 设置参数:
MemCachedClient mc = new MemCachedClient();
//压缩模式
mc.setCompressEnable(true);
// 如果 cache数据 大于4 KB
mc.setCompressThreshold(4096);
// 基本类型tostring方法
// 通常不需要设置
mc.setPrimitiveAsString(true);
//存储一个对象:
MemCachedClient mc = new MemCachedClient();
String key
Object value = SomeClass.getObject();mc.set(key, value);
用客户端hashcode 存储一个对象:
MemCachedClient mc = new MemCachedClient();
String key
Object value = SomeClass.getObject();
Integer hash = new Integer(45);
mc.set(key, value, hash);
set方法:在cache中存储一个指定对象
删除一个对象:
MemCachedClient mc = new MemCachedClient();
String key
结合hashcode 删除一个对象:
MemCachedClient mc = new MemCachedClient();
String key
Integer hash = new Integer(45);
mc.delete(key, hashCode);
怎么cache计数,增 减计数:
MemCachedClient mc = new MemCachedClient();
String key
mc.storeCounter(key, new Integer(100));
System.out.println("counter afteradding
System.out.println("counter afteradding
System.out.println("counter after subtracting 4: " mc.decr(key,4));
System.out.println("counter after subtracting 1: "mc.decr(key));
利用客户端的hashcode存储计数 增减 计数:
MemCachedClient mc = new MemCachedClient();
String key
Integer hash = new Integer(45);
mc.storeCounter(key, new Integer(100), hash);
System.out.println("counter afteradding
System.out.println("counter afteradding
System.out.println("counter after subtracting 4: " mc.decr(key, 4,hash));
System.out.println("counter after subtracting 1: " mc.decr(key, 1,hash));
获取一个对象:MemCachedClient mc = new MemCachedClient();
String key
用客户端hashcode获取一个对象:
MemCachedClient mc = new MemCachedClient();Stringkey
Integer hash = new Integer(45);Object value = mc.get(key,hash);
MemCachedClient mc = new MemCachedClient();Stringkey
Integer hash = new Integer(45);Object value = mc.get(key,hash);
从cache 中获取多个对象MemCachedClient mc = new MemCachedClient();
String[]keys
Mapvalues = mc.getMulti(keys);
用客户端hashcode 从cache中获取多个对象
MemCachedClient mc = new MemCachedClient();
String[]keys
{ new Integer(45), new Integer(32), new Integer(44) };
Mapvalues = mc.getMulti(keys, hashes);
清空所有的对象
MemCachedClient mc = new MemCachedClient();mc.flushAll();
得到服务器memcached的状态信息
MemCachedClient mc = new MemCachedClient();Map stats =mc.stats();
注意点
1:Failover/Failback
当一个memcached服务器失效的时候客户端默认会failover另一个服务去.如果失效的服务器恢复运行,客户端会返回到原来连接的服务器.
如果你不想用这个功能 设置下面的参数
pool.setFailover( false );
pool.setFailback( false ); 2:序列化Boolean
Byte
String
Character
StringBuffer
StringBuilder
Short
Long
Double
Float
Date
java默认的类型没有实现序列化 可以设置
mcc.setPrimitiveAsString( true )替代.
Meetup.com实践过程中得出的一个经验 ,项目中model 对象implement Externalizable实现序列化,
可以节省cache 对象的大小。从而节省网络带宽和内存空间。
- java版的memcached client及…
- java版的memcached client及使用文档
- java版的memcached client及使用文档
- java版的memcached client及使用文档
- java版的memcached client及使用文档
- java版的memcached client及使用文档
- memcached Client在java方面的使用
- memcached client -- memcached client for java使用
- memcached client -- memcached client for java使用
- memcached client -- memcached client for java使用
- Memcached-Java-Client
- Memcached Java Client API
- memcached java Client学习
- memcached java client
- memcached java client API
- Memcached Java Client API
- memcached java client
- Memcached Java Client
- P-value
- Java--日期的使用
- R引入其他统计软件数据的扩…
- indent格式化C代码
- 免费的天气预报webservice接口
- java版的memcached client及…
- ibatis基础上添加memcached缓存
- 二分图的最大权匹配
- Web服务入门之一:通过Xfire创建本…
- 如何设置其它进程中listctrl控件CHECKBOX的选中状态
- Axis2创建WebService实例
- 使用ksoap2 调用 WebSer…
- JS页面的跳转及刷新
- Windows安装memcached图文教程