`
tonybest
  • 浏览: 9760 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

XMemcached使用工具

    博客分类:
  • java
阅读更多
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 中文开发手册

    XMemcached不仅支持memcached的所有协议,还具备一系列增强功能,使其成为开发者的首选工具之一。 #### 主要特性 1. **高性能**: - 基于Java NIO(非阻塞I/O),相较于传统的阻塞I/O模型,Java NIO能够更好地处理...

    xmemcached 2.4.6.rar

    4. **监控与管理**:xmemcached提供了监控和管理工具,可以查看连接状态、统计信息等,帮助优化系统性能。 四、应用场景 xmemcached 2.4.6适用于需要高速缓存的多种场景,例如: 1. **网站静态内容缓存**:缓存...

    xmemcached-1.4.3.jar

    在本文中,我们将详细探讨xmemcached的核心特性和使用方法,帮助开发者更好地理解和利用这个强大的工具。 首先,xmemcached的设计理念是简洁和高效。它采用了非阻塞I/O模型,基于NIO(New IO)框架,这使得...

    Xmemcached用户指南

    ### Xmemcached用户指南知识点详解 #### 一、XMemcached简介 ...无论是对于希望减轻数据库负载的Web应用开发者,还是对于那些寻求高效内存缓存解决方案的专业人士而言,XMemcached都是一个值得考虑的强大工具。

    memcache.spymemcached,和xmemcached 三种缓存实例

    总的来说,memcache.spymemcached和xmemcached都是Java开发人员在使用Memcached时的重要工具,它们为Java应用程序提供了高效的缓存解决方案。了解并掌握这些客户端的特性和用法,对于提升应用程序性能和优化系统架构...

    xmemcached 2.4.5 2.3.2

    总结来说,xmemcached 2.4.5版本相对于2.3.2版本在性能、API、错误处理、序列化和兼容性等方面都有显著提升,为开发者提供了更强大的工具来应对复杂和高并发的分布式环境。在实际项目中,根据业务需求和系统性能,...

    征服 Kestrel + XMemcached

    总的来说,掌握Kestrel和XMemcached的使用,不仅可以提升系统的性能和可扩展性,还能为开发者在解决复杂分布式问题时提供有力的工具。通过不断学习和实践,你将能够熟练地驾驭这两个强大的技术组件。

    Xmemcached用户指南.docx

    总结,XMemcached作为Java环境下优秀的Memcached客户端,其高性能、灵活性和丰富的特性使其成为开发人员的首选工具,特别是在处理高并发和需要分布式缓存的场景下。通过深入理解和正确使用XMemcached,可以有效地...

    spring集成memcached

    如果使用Maven或Gradle作为构建工具,则可通过添加依赖的方式自动下载所需库。 **2. 配置文件设置** 在项目的资源目录下创建一个名为`memcached.properties`的配置文件,用于指定Memcached服务的基本信息和连接...

    Xmemcached一个java实现的分布式缓存

    - **监控与调优**: 使用xmemcached-tools或其他第三方工具定期检查Memcached和Xmemcached的运行状态,进行性能调优。 7. **总结** Xmemcached作为Java实现的Memcached客户端,以其高效、稳定和易用性,广泛应用于...

    Xmemcached用户指南.pdf

    总的来说,XMemcached作为Java开发者的强大工具,提供了一套完善的Memcached客户端解决方案,无论是在性能、可扩展性还是易用性方面都表现出色,使得开发者能更专注于应用程序的业务逻辑,而不是底层缓存的管理。

    Xmemcached用户指南 后端 - Java.zip

    本文档将深入探讨如何使用Xmemcached进行后端开发,帮助Java开发者更好地理解和利用这一强大的工具。 1. **Xmemcached简介** Xmemcached是基于原生Memcached协议实现的Java客户端,提供了异步非阻塞I/O,具有低...

    Xmemcached/jedis springdemo

    【Xmemcached/jedis Spring Demo】是一个整合了Xmemcached和jedis的Spring示例项目,旨在帮助开发者理解和学习如何在Spring框架中集成并使用这两种流行的NoSQL客户端库。Xmemcached是Java编写的高效、易用的...

    mule ce xmemcached

    8. **缓存应用实例**: 在Mule应用中,可能会有一个特定的流程或组件,使用XMemcached来存储和检索数据,以提升性能和响应速度。 9. **开发流程**: 包括设计缓存策略、配置XMemcached连接、创建Spring Bean、在Mule ...

    征服 Kestrel + XMemcached + Spring TaskExecutor

    通过深入学习Kestrel的配置、管理和监控,掌握XMemcached的使用技巧,以及理解Spring TaskExecutor的线程池管理策略,开发者可以有效地优化应用程序的性能,同时保证系统的可伸缩性和可靠性。在实际项目中,可能还...

    memcached 的使用,以及jar包,和工具

    2. **Java客户端库**:了解如何使用Java(如XMemcached或spymemcached)与memcached交互,包括设置、获取、删除键值对等操作。 3. **管理工具**:掌握`MemCachedManager.java`类可能提供的功能,如连接、操作和监控...

    kestrel-task-executor:Kestrel + XMemcached + Spring TaskExecutor

    2. **XMemcached**:XMemcached是Java社区中广泛使用的Memcached客户端库,它提供了高效的Memcached连接管理和操作API。在这个项目中,XMemcached被用于缓存任务结果或者作为临时数据存储,以减少数据库的访问压力,...

    memcached工具类源码

    在Java中,我们可以使用各种客户端库与Memcached通信,如Spymemcached、Xmemcached、MemcachedClient等。这些库提供了方便的方法来操作Memcached服务器,包括设置、获取、删除和过期等操作。 3. **源码结构分析** ...

    memcache-demo

    标题"memcache-demo"指的是一个关于Memcache的示例项目,其中可能包含如何在Java环境中,特别是在使用XMemcached这个客户端库时,集成和使用Memcache的代码实例。XMemcached是一个高效、稳定的Java Memcached客户端...

    com.yangc.utils:工作中积累的工具类

    cacheEhCacheUtils - 基于ehcache的工具类LruCacheUtils - 基于LinkedHashMap实现LRU缓存的工具类MemcachedUtils - 基于memcached的工具类XMemcachedUtils - 基于memcached的工具类(使用XMemcached客户端)Redis...

Global site tag (gtag.js) - Google Analytics