在项目开发中,有些不经常修改的数据,我们通常都会选择使用缓存。其中一种方式,就是memcached.

windows系统中,我们需要下载并安装memcached。

地址如:D:\memcached\memcached.exe

然后,用管理员身份运行cmd.exe,输入启动命令:

 

这样,我们在项目中就可以创建缓存实例了:

public class MemcachedManager {

    // 创建MemCachedClient全局对象
    private static MemCachedClient mcc = new MemCachedClient();

    static {
        // 创建服务器列表及其权重
        String[] servers = { "127.0.0.1:11211" };
        Integer[] weights = { 3 };

        // 创建Socket连接池对象
        SockIOPool pool = SockIOPool.getInstance();

        // 设置服务器信息
        pool.setServers(servers);
        pool.setWeights(weights);
        pool.setFailover(true);

        // 设置初始连接数、最小和最大连接数以及最大处理时间
        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.setAliveCheck(true);

        // 初始化连接池
        pool.initialize();

    }

    /**
     * 无参构造
     */
    protected MemcachedManager() {

    }

    // 受保护的对象
    protected static MemcachedManager instance = new MemcachedManager();

    /**
     * 为受保护的对象提供一个公共的访问方法
     */
    public static MemcachedManager getInstance() {
        return instance;
    }

    /**
     * 添加对象到缓存中,构成方法重载
     * 
     * @param key
     * @param value
     * @return
     */
    public boolean add(String key, Object value) {
        return mcc.add(key, value);
    }

    public boolean add(String key, Object value, Date expiry) {
        return mcc.add(key, value, expiry);
    }

    public 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);
    }

    /**
     * 根据指定的关键字获取对象
     */
    public Object get(String key) {
        return mcc.get(key);
    }
    
    public static void main(String[] args) {
        // 得到MemcachedManager实例
         MemcachedManager cache = MemcachedManager.getInstance();
         //创建test缓存
         cache.add("test", "hello");
         //取出test缓存
         System.out.println(cache.get("test"));
         //修改test缓存
         cache.replace("test", "hello123");
         //取出test缓存
         System.out.println(cache.get("test"));
    }
   
}

运行这个例子后,打印出的结果如下:

hello
hello123

 

posted on 2014-12-15 17:41  倚窗听雨  阅读(229)  评论(0编辑  收藏  举报