XMemcached使用工具

public class MemCacheUtil {
	/** 
	* memcached客户端单例 
	*/
	private static MemcachedClient	cachedClient;

	/** 
	 * 初始化连接池 
	 */
	static {
		try {
			MemcachedClientBuilder builder = new XMemcachedClientBuilder(
					AddrUtil.getAddresses("192.168.204.201:11211"), new int[] { 3 });
			builder.setFailureMode(true);
			// 使用二进制文件
			builder.setCommandFactory(new BinaryCommandFactory());
			builder.setConnectionPoolSize(10);
			builder.setSocketOption(StandardSocketOption.SO_RCVBUF, 32 * 1024); // 设置接收缓存区为32K,默认16K
			builder.setSocketOption(StandardSocketOption.SO_SNDBUF, 16 * 1024); // 设置发送缓冲区为16K,默认为8K
			builder.setSocketOption(StandardSocketOption.TCP_NODELAY, false); // 启用nagle算法,提高吞吐量,默认关闭
			builder.setOpTimeout(10000);// 设置超时为10秒
			cachedClient = builder.build();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: add
	* @Description: 添加一个值,如果已经存在,则返回false
	* @param key  键
	* @param value  值
	* @return
	* @throws
	 */
	public static boolean add(String key, Object value) throws TimeoutException, InterruptedException,
			MemcachedException {
		return cachedClient.add(key, 0, value);
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: add
	* @Description: 添加一个值,如果已经存在,则返回false
	* @param key  键
	* @param value  值
	* @param expire 存活期
	* @return
	* @throws
	 */
	public static boolean add(String key, Object value, Integer expire) throws TimeoutException, InterruptedException,
			MemcachedException {
		return cachedClient.add(key, expire, value);
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: put
	* @Description: 向Memcache添加一个值,如果已经存在,则覆写
	* @param key  键
	* @param value  值
	* @return
	* @throws
	 */
	public static boolean put(String key, Object value) throws TimeoutException, InterruptedException,
			MemcachedException {
		return cachedClient.set(key, 0, value);
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: put
	* @Description: 向Memcache添加一个值,如果已经存在,则覆写
	* @param key 键
	* @param value 值
	* @param expire 存活期
	* @return
	* @throws
	 */
	public static boolean put(String key, Object value, Integer expire) throws TimeoutException, InterruptedException,
			MemcachedException {
		return cachedClient.set(key, expire, value);
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: replace
	* @Description:  替换一个已经存在Memcache服务器上的项目
	* @param key  键
	* @param value  值
	* @return
	* @throws
	 */
	public static boolean replace(String key, Object value) throws TimeoutException, InterruptedException,
			MemcachedException {
		return cachedClient.replace(key, 0, value);
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: replace
	* @Description: 替换一个已经存在Memcache服务器上的项目
	* @param key  键
	* @param value  值
	* @param expire 存活期
	* @return
	* @throws
	 */
	public static boolean replace(String key, Object value, Integer expire) throws TimeoutException,
			InterruptedException, MemcachedException {
		return cachedClient.replace(key, expire, value);
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: get
	* @Description: 从Memcache上获取一个key值
	* @param key 键
	* @return
	* @throws
	 */
	public static Object get(String key) throws TimeoutException, InterruptedException, MemcachedException {
		return cachedClient.get(key);
	}

	/**
	 * @throws MemcachedException 
	 * @throws InterruptedException 
	 * @throws TimeoutException 
	 * 
	* @Title: delete 
	* @Description:  删除一个Memcache上的key值
	* @param key 键
	* @return
	* @throws
	 */
	public static boolean delete(String key) throws TimeoutException, InterruptedException, MemcachedException {
		return cachedClient.delete(key);
	}

}

 

你可能感兴趣的:(xmemcached)