一、简要概述:

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"));

演示结果: