这是一个简单的memcash的util类:其他详细的都不在这说了网上很多介绍:
propertiy文件内容
mccserver=192.168.10.34:6379 timeout=120000
下面是util的类:
import java.util.Date;
import java.util.Properties;
import java.util.Random;
import java.io.File;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
import com.palmcommerce.util.EncryptUtil;
import com.palmcommerce.util.FileLoader;
//import com.xjfc.domain.user.UserSingle;
import com.xingkongyongheng.trade.bean.UserInfo;
import com.xingkongyongheng.web.action.wap.charge.Rsa;
public class SingleLoginHelpser {
//声明一个memcash 客户端
private MemCachedClient mcc = new MemCachedClient();
private static SingleLoginHelpser instance=null;
static boolean isSuccess=true;
private SingleLoginHelpser() {
//初始化设置
String path=SingleLoginHelpser.class.getPackage().getName();
path=path.replace(".", File.separator)+File.separator+"memcash.properties";
Properties properties=FileLoader.loadProByClassPath(path);
if(properties!=null) {
mccserver=properties.getProperty("mccserver");
timeout=Long.parseLong(properties.getProperty("timeout"));
initMcc();
isSuccess=true;
}else {
isSuccess=false;
System.out.println("memcash.properties not found");
}
}
//获取实例
public static SingleLoginHelpser getInstance() {
if(instance!=null&&isSuccess) {
return instance;
}else {
instance=new SingleLoginHelpser();
if(instance!=null&&isSuccess) {
return instance;
}else {
return null;
}
}
}
private String mccserver;//memcash server地址,包括端口号
private long timeout=60*1000;//保存对象时间,默认为一分钟
public void initMcc() {
String[] servers =mccserver.split(",");
Integer[] weights = { 3 };
//创建一个实例对象SockIOPool
SockIOPool pool = SockIOPool.getInstance();
//设置Memcached Server
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 );
// initialize the connection pool
//初始化一些值并与MemcachedServer段建立连接
pool.initialize();
// lets set some compression on for the client
// compress anything larger than 64k
mcc.setCompressEnable( false );
mcc.setCompressThreshold( 64 * 1024 );
}
//向缓存添加一个对象
public void add(String key,Object value) {
mcc.add(key, value, new Date(timeout));
}
//根据key读取一个对象
public Object get(String key) {
return mcc.get( key );
}
//读取并删除
public Object getremove(String key) {
Object object=mcc.get( key );
mcc.delete(key);
return object;
}
//删除一个对象
public void remove(String key) {
mcc.delete(key);
}
public void removeall() {
mcc.flushAll();
}
public static String getRandomString(int num) {
//String randstring = "0123456789";
String randstring = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return String.valueOf(randstring.charAt(num));
}
}