一、简要概述:

memcache集群环境下缓存解决方案,是一个高性能的分布式的内存对象缓存系统,通过在内存库里维护一个统一的巨大的hash表,存储各种数据,包括图像、视频、文件以及数据库检索结果等。
简单的说就是讲数据调用到存储中,后从内存中读取,从而大大提高读取速度。memcache是这个项目的名称,而memcached是它的服务端的主程序文件名。

二、常用方法:

1、初始化memcache

//初始化memcache
    public static void initMemcache(){
        String[] servers = {"127.0.0.1:11211"};
        SockIOPool pool = SockIOPool.getInstance();
        pool.setServers(servers);
        pool.setFailover(true);
        pool.setInitConn(10);
        pool.setMinConn(5);
        pool.setMaxConn(250);
        pool.setMaintSleep(30);
        pool.setNagle(false);
        pool.setSocketTO(3000);
        pool.setAliveCheck(true);
        pool.initialize();
    }

2、创建缓存

/**
     * 创建缓存
     * @param key   键
     * @param value 值
     */
    public static void createMemcache(String key, Object value){
        //创建client对象
        MemCachedClient mclent = new MemCachedClient();
        //创建缓存
        mclent.set(key, value);
    }

3、删除指定缓存

/**
     * 删除指定缓存
     * @param key     键
     */
    public static void deleteMemcache(String key){
        MemCachedClient mclent = new MemCachedClient();
        mclent.delete(key);
    }

4、获取缓存

/**
     * 获取缓存
     * @param key    键
     * @return       值
     */
    public static Object getMemcache(String key){
        MemCachedClient mclent = new MemCachedClient();
        Object value = mclent.get(key);
        return value;
    }

5、获取多个缓存

/**
     * 获取多个缓存对象
     * @param keys
     * @return 
     */
    public static Map<String, Object> getManyMemcache(String[] keys){
        MemCachedClient mclent = new MemCachedClient();
        Map<String, Object> m = mclent.getMulti(keys);
        return m;
    }

6、清空指定类型的缓存

/**
     * 清除指定类型的缓存
     * @param str
     * @return
     */
    public static boolean flashLMemcache(String[] str){
        MemCachedClient mclent = new MemCachedClient();
        mclent.flushAll(str);
        return true;
    }

7、清空所有缓存

/**
     *清空缓存
     * @return
     */
    public static boolean flashMemcache(){
        MemCachedClient mclent = new MemCachedClient();
        mclent.flushAll();
        return true;
    }

三、演示与测试:

/**
     * memcache,存储调用测试
     */
    AbMemcache.initMemcache();
    AbMemcache.createMemcache("redant", "今天20181106");
    Object obj = AbMemcache.getMemcache("redant");
    System.err.println(obj);

演示结果:

/**

  • memcache,删除指定缓存
    */
    AbMemcache.deleteMemcache("redant");
    System.err.println(AbMemcache.getMemcache("redant"));
    /**
  • 清空全部缓存
    */
    AbMemcache.flashMemcache();
    System.err.println(AbMemcache.getMemcache("redant"));

演示结果:

Java中使用memcache缓存