标签:memcached
一、Memcached安装package com.liupeng.controller; import java.util.Date; import com.danga.MemCached.MemCachedClient; import com.danga.MemCached.SockIOPool; import com.liupeng.domain.Person; public class TestMemcached { public static MemCachedClient mcc = new MemCachedClient(); public static TestMemcached tc = new TestMemcached(); //设置与缓存服务器的连接池 static{ //服务器列表和其权重 String[] servers={ "127.0.0.1:11211" }; Integer[] weights={3}; SockIOPool pool=SockIOPool. getInstance(); pool.setServers( servers ); //设置服务器数组信息 pool.setWeights( weights ); //设置服务器权重数组 pool.setInitConn(5); //初始连接数 pool.setMinConn(5); //最小连接数 pool.setMaxConn(250); //最大连接数 pool.setMaxIdle(1000*60*60*6); //最大处理时间 pool.setMaintSleep(30); //设置主线程的睡眠时间 //设置TCP的参数,连接超时等 pool.setNagle( false); pool.setSocketTO(3000); pool.setSocketConnectTO(0); //初始化连接池 pool.initialize(); //压缩设置,超过指定大小(单位为K)的数据都会被压缩 //mcc.setCompressEnable(true); //mcc.setCompressThreshold(64*1024); } /** * 保护型构造方法,不允许被实例化 */ protected TestMemcached(){} /** * 获取唯一实例 * @return */ public static TestMemcached getInstance(){ return tc; } /*插入*/ /** * 添加数据到缓存中 * @param key * @param value * @return */ public boolean add(String key,Object value){ return mcc.add(key, value); } /** * 添加数据到缓存中,并设置超时时间 * @param key * @param value * @param expiry * @return */ public boolean add(String key, Object value, Date expiry) { return mcc.add(key, value, expiry); } /*设置*/ /** * 在缓存中设置一个键的值 * @param key * @param value * @return */ public boolean set(String key,Object value){ return mcc.set(key, value); } /** * 在缓存中设置一个键的值,并设置超时时间 * @param key * @param value * @param expiry * @return */ public boolean set(String key ,Object value ,Date expiry){ return mcc.set(key, value, expiry); } /*替换*/ /** * 将某个键的值替换成新的值 * @param key * @param value * @return */ public boolean replace(String key, Object value) { return mcc.replace(key, value); } /** * 将某个键的值替换成新的值,并设置超时时间 * @param key * @param value * @param expiry * @return */ public boolean replace(String key, Object value, Date expiry) { return mcc.replace(key, value, expiry); } /*获取*/ /** * 从缓存中获取某个键的值 * @param key * @return */ public Object get(String key) { return mcc.get(key); } public static void main(String[] args) { /**********简单测试***********/ TestMemcached tm = TestMemcached. getInstance(); tm.add( "hello", "1234", new Date( new Date().getTime() + 10000));//10秒过期 while( true){ try { Thread. sleep(1000); } catch (Exception e) { e.printStackTrace(); } System. out.println(tm.get( "hello")); } /*******java bean测试********/ //实体类必须要实现 Serializable接口 Person person = new Person( "liupeng"); TestMemcached tm = TestMemcached.getInstance (); tm.add( "bean", person); Person p = (Person)tm.get( "bean"); System. out.println(p.getName()); //修改名称不影响缓存中值 p.setName( "xiaoliu"); p = (Person)tm.get( "bean"); System. out.println(p.getName()); p.setName( "xiaoliu"); tm.replace( "bean", p); System. out.println(p.getName()); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:memcached
原文地址:http://blog.csdn.net/liupeng_family/article/details/47082175