memcached的一个小例子

package jia5.memcached;

import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
 
/**
* 使用memcached的缓存实用类.
*  
* @author 原作者:铁木箱子  完善:周枫
*
*/
public class Mecached
{
//    private static Logger logger=Logger.getLogger(Mecached.class);
    // 创建全局的唯一实例
    protected static MemCachedClient mcc = new MemCachedClient();
    protected static Mecached memCached = new Mecached();
    // 设置与缓存服务器的连接池
    static {
//        String ip=Configuration.getMemcacheIp();
//        String port=Configuration.getMemcachePort();
        // 服务器列表和其权重,个人memcached地址和端口号
        //String[] servers={ip+":"+port};
        String[] servers={"localhost:11211"};
        Integer[] weights = {3};
 
        // 获取socke连接池的实例对象
        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 ); //设置读取超时为3秒
        pool.setSocketConnectTO( 0 ); //0表示不设置连接超时
        // 初始化连接池
        pool.initialize();
        mcc.setPrimitiveAsString( true );//设置序列化
    }
      
    /**
     * 保护型构造方法,不允许实例化!
     *
     */
    protected Mecached()
    {
          
    }
      
    /**
     * 获取唯一实例.
     * @return
     */
    public static Mecached getInstance()
    {
        return memCached;
    }
      
    /**
     * 添加一个指定的值到缓存中.
     * @param key
     * @param value
     * @return
     */
    public static boolean add(String key, Object value)
    {
        return mcc.add(key, value);
        //return mcc.set(key, value);
    }
      
    public boolean add(String key, Object value, Date expiry)
    {
        return mcc.add(key, value, expiry);
    }
      
    /**
     * 替换一个指定的值到缓存中.
     * @param key
     * @param value
     * @return
     */
    public static boolean replace(String key, Object value)
    {
        return mcc.replace(key, value);
    }
      
    public boolean replace(String key, Object value, Date expiry)
    {
        return mcc.replace(key, value, expiry);
    }
      
    /**
     * 删除一个指定的值到缓存中.
     * @param key
     * @param value
     * @return
     */
    public static boolean delete(String key)
    {
        return mcc.delete(key);
    }
      
      
    /**
     * 根据指定的关键字获取对象.
     * @param key
     * @return
     */
    public static Object get(String key)
    {
        return mcc.get(key);
    }
      
    public static void main(String[] args)
    {
        Mecached.add("test", "test");
        Mecached.add("abc", "test");
        Mecached.add("def", "test");
        Mecached.add("ghi", "test");
        System.out.println(memCached.get("test"));
        //Mecached.delete("test");
        /*Map<String,Hit> hitMap=(Map<String, Hit>) Mecached.get("hit");
        if(hitMap==null) {
            logger.info("hitMap is null");
        } else {
            logger.info("hitMap size is:"+hitMap.size());
        }
        Map<String,AreaInfo> areaMap=(Map<String, AreaInfo>) Mecached.get("area");
        if(areaMap==null) {
            logger.info("areaMap is null");
        } else {
            logger.info("areaMap size is:"+areaMap.size());
        }
        Map<String,Object> areaIpMap=(Map<String, Object>) Mecached.get("area_ip");
        if(areaIpMap==null) {
            logger.info("areaIpMap is null");
        } else {
            logger.info("areaIpMap size is:"+areaIpMap.size());
        }
        Map<String,AreaInfo> ispMap=(Map<String, AreaInfo>) Mecached.get("isp");
        if(ispMap==null) {
            logger.info("ispMap is null");
        } else {
            logger.info("ispMap size is:"+ispMap.size());
        }
        Map<String,Object> ispIpMap=(Map<String, Object>) Mecached.get("isp_ip");
        if(ispIpMap==null) {
            logger.info("ispIpMap is null");
        } else {
            logger.info("ispIpMap size is:"+ispIpMap.size());
        }
        Map<String,AreaInfo> statusCodeMap=(Map<String, AreaInfo>) Mecached.get("status");
        if(statusCodeMap==null) {
            logger.info("statusCodeMap is null");
        } else {
            logger.info("statusCodeMap size is:"+statusCodeMap.size());
        }
        Map<String,Object> statusCodeIpMap=(Map<String, Object>) Mecached.get("status_ip");
        if(statusCodeIpMap==null) {
            logger.info("statusCodeIpMap is null");
        } else {
            logger.info("statusCodeIpMap size is:"+statusCodeIpMap.size());
        }
        logger.info("areasqlsize size is:"+Mecached.get("areasqlsize"));
        logger.info("ispsqlsize size is:"+Mecached.get("ispsqlsize"));
        logger.info("statussqlsize size is:"+Mecached.get("statussqlsize"));
        logger.info("hitsqlsize size is:"+Mecached.get("hitsqlsize"));
        logger.info("isMonitor is:"+Mecached.get("isMonitor"));
        logger.info("size is:"+Mecached.get("testValue"));*/
    }
}

    你可能感兴趣的:(memcached的一个小例子)