java Memcache使用详解

Memcached-Java-Client是Memcached官方提供的Java语言访问Memcached的工具包,使用它可以比较方便地与缓存服务端进行通信。
下载地址:https://github.com/gwhalin/Memcached-Java-Client/downloads,

下载最新版本 java_memcached-release_2.6.6.zip

java代码如下:

package memcache;

import java.io.Serializable;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
class User implements Serializable{ //必须将对象序列化才能保存 
 public String userName; 
 public String password;
 }
public class MemcacheManagerForGwhalin { 
 // 构建缓存客户端    
 private static MemCachedClient cachedClient;  
 // 单例模式实现客户端管理类     
 private static MemcacheManagerForGwhalin INSTANCE = new MemcacheManagerForGwhalin();      
 private MemcacheManagerForGwhalin() {         
  cachedClient = new MemCachedClient();         
  //获取连接池实例          
  SockIOPool pool = SockIOPool.getInstance();           
  //设置缓存服务器地址,可以设置多个实现分布式缓存          
  pool.setServers(new String[]{"127.0.0.1:11211"}); 
  //设置初始连接5         
  pool.setInitConn(5);      
  //设置最小连接5          
  pool.setMinConn(5);       
  //设置最大连接250          
  pool.setMaxConn(250);       
  //设置每个连接最大空闲时间3个小时         
  pool.setMaxIdle(1000 * 60 * 60 * 3);    
  pool.setMaintSleep(30);           
  pool.setNagle(false);         
  pool.setSocketTO(3000);         
  pool.setSocketConnectTO(0);      
  pool.initialize();    
 }           
 /**     
  *  
  *  
  * 获取缓存管理器唯一实例       
  * @return     
  */     
 public static MemcacheManagerForGwhalin getInstance() {    
  return INSTANCE;     
  }        
 public void add(String key, Object value) {  
  cachedClient.set(key, value);   
  }        
 public void add(String key, Object value, int milliseconds) {   
  cachedClient.set(key, value, milliseconds);   
  }        
 public void remove(String key) { 
  cachedClient.delete(key);     
  }       
 public void remove(String key, int milliseconds) {    
  cachedClient.delete(key, milliseconds, new Date()); 
  }        
 public void update(String key, Object value, int milliseconds) {  
  cachedClient.replace(key, value, milliseconds);   
  }        
 public void update(String key, Object value) {       
  cachedClient.replace(key, value);   
  }                
 public Object get(String key) {       
  return cachedClient.get(key);     
  }         
 public static void main(String args[]){ 
  MemcacheManagerForGwhalin memcache = MemcacheManagerForGwhalin.getInstance();  
  memcache.add("4", new User());   
  System.out.println(memcache.get("4"));   
  }
}

源码下载请见附件

参考文章:

http://asher.blog.163.com/blog/static/174174566201321421241578/

与Spring集成

http://blog.csdn.net/dhdhdh0920/article/details/42242521

时间: 2024-10-15 19:27:46

java Memcache使用详解的相关文章

java移位运算符详解[转]

java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模.如对int型移动33位,实际上只移动了332=1位. 2)运算规则 按

java 代理模式详解

java 动态代理(JDK和cglib) 设计模式这东东每次看到就明白可过段时间又不能很流利的说出来,今天就用详细的比喻和实例来加深自己的理解(小弟水平不高有不对的地方希望大家能指出来). (1)代理这个词生活中有很多比如在街边卖手机卡.充公交地铁卡的小商店他们都起了代理的作用,java中的代理跟这些小店商的作用是一样的.再比如我想在淘宝上开个服装店但又没有货源怎么办,这时候我就要跟淘宝上某一卖家联系做他的代理.我跟我的商家都要卖衣服(就好比我们都继承了卖衣服的接口sellClothesInte

设计模式 - 迭代器模式(iterator pattern) Java 迭代器(Iterator) 详解

迭代器模式(iterator pattern) Java 迭代器(Iterator) 详解 本文地址: http://blog.csdn.net/caroline_wendy 参考迭代器模式(iterator pattern): http://blog.csdn.net/caroline_wendy/article/details/35254643 Java的标准库(util)中包含迭代器接口(iterator interface), import java.util.Iterator; 继承(

java内存泄露详解

很多人有疑问,java有很好的垃圾回收机制,怎么会有内存泄露?其实是有的,那么何为内存泄露?在Java中所谓内存泄露就是指在程序运行的过程中产生了一些对象,当不需要这些对象时,他们却没有被垃圾回收掉,而且程序运行中很难发现这个对象,它始终占据着内存却没有发挥作用. 我举这样一个例子,在现实开发中我们需要自定义一个先进后出的栈集合,代码如下: 这个代码看起来和运行起来都没问题,但是,这里有个很隐晦的问题,就是在pop()方法里面,我们首先找到集合最后一个元素的下标,然后按照下标从集合中取出,但是这

java移位运算符详解

java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移).1.左移运算符左移运算符<<使指定值的所有位都左移规定的次数.1)它的通用格式如下所示:value << numnum 指定要移位值value 移动的位数.左移的规则只记住一点:丢弃最高位,0补最低位如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模.如对int型移动33位,实际上只移动了332=1位. 2)运算规则按二进制形式把所有的

Java关键字synchronized详解

Java关键字synchronized详解 博客分类: Java综合 Java多线程thread互联网制造 synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,没有的话,直接运行 它包括两种用法:synchronized 方法和 synchronized 块. 1. synchronized 方法: 通过在方法声明中

转:Java HashMap实现详解

Java HashMap实现详解 转:http://beyond99.blog.51cto.com/1469451/429789 1.    HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 2.    HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造

Java网络编程详解

Java网络编程详解 http://blog.csdn.net/he90227/article/details/39184247 Java网络编程详解

Eclipse Java Build Path详解

Eclipse Java Build Path详解 1.设置"source folder"与"output folder". * source folder:存放.java源文件的根目录;    * output folder:.class编译输出的根目录:    * 纯“java project”中,一般把"src"设置为source folder,把bin设置为output folder:    * 在“web project”中,一般把&q