memcash 例子

这是一个简单的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));
	}
}

猜你喜欢

转载自1025358610.iteye.com/blog/2102584