码迷,mamicode.com
首页 > 编程语言 > 详细

Memcached Java使用

时间:2015-07-27 13:21:32      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:memcached

一、Memcached安装
技术分享
技术分享
     下载Memcached的zip包,cmd切换到解压后的目录下
     管理员身份运行:安装:memcached.exe -d install
                               启动:memcached.exe -d start     
                               关闭:memcached.exe -d stop     
                               卸载:memcached.exe -d uninstall

三、Memcached使用
    1、 导入java_memcached-release_x.x.x.zip包下的几个jar包(具体包先自行下载,稍后给出地址)
    2、代码
package com.liupeng.controller;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
import com.liupeng.domain.Person;

public class TestMemcached {
    public static MemCachedClient mcc = new MemCachedClient();
    public static TestMemcached tc = new TestMemcached();
   
    //设置与缓存服务器的连接池
    static{
        //服务器列表和其权重
         String[] servers={ "127.0.0.1:11211" };
         Integer[] weights={3};

         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);
         pool.setSocketConnectTO(0);

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

        //压缩设置,超过指定大小(单位为K)的数据都会被压缩
         //mcc.setCompressEnable(true);
         //mcc.setCompressThreshold(64*1024);
     }
   
    /**
     * 保护型构造方法,不允许被实例化
     */
    protected TestMemcached(){}
   
    /**
     * 获取唯一实例
     * @return
     */
    public static TestMemcached getInstance(){
        return tc;
    }
   
   
   
    /*插入*/
    /**
     * 添加数据到缓存中
     * @param key
     * @param value
     * @return
     */
    public boolean add(String key,Object value){
        return mcc.add(key, value);
    }
    /**
     * 添加数据到缓存中,并设置超时时间
     * @param key
     * @param value
     * @param expiry
     * @return
     */
    public boolean add(String key, Object value, Date expiry)
    {
       return mcc.add(key, value, expiry);
    }
   
   
   
    /*设置*/
    /**
     * 在缓存中设置一个键的值
     * @param key
     * @param value
     * @return
     */
    public boolean set(String key,Object value){
        return mcc.set(key, value);
    }
    /**
     * 在缓存中设置一个键的值,并设置超时时间
     * @param key
     * @param value
     * @param expiry
     * @return
     */
    public boolean set(String key ,Object value ,Date expiry){
        return mcc.set(key, value, expiry);
    }
   
   
   
    /*替换*/
    /**
     * 将某个键的值替换成新的值
     * @param key
     * @param value
     * @return
     */
    public boolean replace(String key, Object value)
    {
       return mcc.replace(key, value);
    }
    /**
     * 将某个键的值替换成新的值,并设置超时时间
     * @param key
     * @param value
     * @param expiry
     * @return
     */
    public boolean replace(String key, Object value, Date expiry)
    {
       return mcc.replace(key, value, expiry);
    }
   
   
    /*获取*/
    /**
     * 从缓存中获取某个键的值
     * @param key
     * @return
     */
    public Object get(String key)
    {
       return mcc.get(key);
    }
   
    public static void main(String[] args) {
        /**********简单测试***********/
        TestMemcached tm = TestMemcached. getInstance();
        tm.add( "hello", "1234", new Date( new Date().getTime() + 10000));//10秒过期
        while( true){
            try {
                Thread. sleep(1000);
            } catch (Exception e) {
                e.printStackTrace();
            }
            System. out.println(tm.get( "hello"));
        }
       
        /*******java bean测试********/
        //实体类必须要实现 Serializable接口
        Person person = new Person( "liupeng");
        TestMemcached tm = TestMemcached.getInstance ();
        tm.add( "bean", person);
       
        Person p = (Person)tm.get( "bean");
        System. out.println(p.getName());
       
        //修改名称不影响缓存中值
        p.setName( "xiaoliu");
        p = (Person)tm.get( "bean");
        System. out.println(p.getName());
       
        p.setName( "xiaoliu");
        tm.replace( "bean", p);
        System. out.println(p.getName());
    }
   
}









版权声明:本文为博主原创文章,未经博主允许不得转载。

Memcached Java使用

标签:memcached

原文地址:http://blog.csdn.net/liupeng_family/article/details/47082175

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!