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不仅支持memcached的所有协议,还具备一系列增强功能,使其成为开发者的首选工具之一。 #### 主要特性 1. **高性能**: - 基于Java NIO(非阻塞I/O),相较于传统的阻塞I/O模型,Java NIO能够更好地处理...
4. **监控与管理**:xmemcached提供了监控和管理工具,可以查看连接状态、统计信息等,帮助优化系统性能。 四、应用场景 xmemcached 2.4.6适用于需要高速缓存的多种场景,例如: 1. **网站静态内容缓存**:缓存...
在本文中,我们将详细探讨xmemcached的核心特性和使用方法,帮助开发者更好地理解和利用这个强大的工具。 首先,xmemcached的设计理念是简洁和高效。它采用了非阻塞I/O模型,基于NIO(New IO)框架,这使得...
- **监控与调优**: 使用xmemcached-tools或其他第三方工具定期检查Memcached和Xmemcached的运行状态,进行性能调优。 7. **总结** Xmemcached作为Java实现的Memcached客户端,以其高效、稳定和易用性,广泛应用于...
### Xmemcached用户指南知识点详解 #### 一、XMemcached简介 ...无论是对于希望减轻数据库负载的Web应用开发者,还是对于那些寻求高效内存缓存解决方案的专业人士而言,XMemcached都是一个值得考虑的强大工具。
总的来说,memcache.spymemcached和xmemcached都是Java开发人员在使用Memcached时的重要工具,它们为Java应用程序提供了高效的缓存解决方案。了解并掌握这些客户端的特性和用法,对于提升应用程序性能和优化系统架构...
总结来说,xmemcached 2.4.5版本相对于2.3.2版本在性能、API、错误处理、序列化和兼容性等方面都有显著提升,为开发者提供了更强大的工具来应对复杂和高并发的分布式环境。在实际项目中,根据业务需求和系统性能,...
总的来说,掌握Kestrel和XMemcached的使用,不仅可以提升系统的性能和可扩展性,还能为开发者在解决复杂分布式问题时提供有力的工具。通过不断学习和实践,你将能够熟练地驾驭这两个强大的技术组件。
总结,XMemcached作为Java环境下优秀的Memcached客户端,其高性能、灵活性和丰富的特性使其成为开发人员的首选工具,特别是在处理高并发和需要分布式缓存的场景下。通过深入理解和正确使用XMemcached,可以有效地...
如果使用Maven或Gradle作为构建工具,则可通过添加依赖的方式自动下载所需库。 **2. 配置文件设置** 在项目的资源目录下创建一个名为`memcached.properties`的配置文件,用于指定Memcached服务的基本信息和连接...
总的来说,XMemcached作为Java开发者的强大工具,提供了一套完善的Memcached客户端解决方案,无论是在性能、可扩展性还是易用性方面都表现出色,使得开发者能更专注于应用程序的业务逻辑,而不是底层缓存的管理。
本文档将深入探讨如何使用Xmemcached进行后端开发,帮助Java开发者更好地理解和利用这一强大的工具。 1. **Xmemcached简介** Xmemcached是基于原生Memcached协议实现的Java客户端,提供了异步非阻塞I/O,具有低...
【Xmemcached/jedis Spring Demo】是一个整合了Xmemcached和jedis的Spring示例项目,旨在帮助开发者理解和学习如何在Spring框架中集成并使用这两种流行的NoSQL客户端库。Xmemcached是Java编写的高效、易用的...
8. **缓存应用实例**: 在Mule应用中,可能会有一个特定的流程或组件,使用XMemcached来存储和检索数据,以提升性能和响应速度。 9. **开发流程**: 包括设计缓存策略、配置XMemcached连接、创建Spring Bean、在Mule ...
通过深入学习Kestrel的配置、管理和监控,掌握XMemcached的使用技巧,以及理解Spring TaskExecutor的线程池管理策略,开发者可以有效地优化应用程序的性能,同时保证系统的可伸缩性和可靠性。在实际项目中,可能还...
2. **Java客户端库**:了解如何使用Java(如XMemcached或spymemcached)与memcached交互,包括设置、获取、删除键值对等操作。 3. **管理工具**:掌握`MemCachedManager.java`类可能提供的功能,如连接、操作和监控...
2. **XMemcached**:XMemcached是Java社区中广泛使用的Memcached客户端库,它提供了高效的Memcached连接管理和操作API。在这个项目中,XMemcached被用于缓存任务结果或者作为临时数据存储,以减少数据库的访问压力,...
在Java中,我们可以使用各种客户端库与Memcached通信,如Spymemcached、Xmemcached、MemcachedClient等。这些库提供了方便的方法来操作Memcached服务器,包括设置、获取、删除和过期等操作。 3. **源码结构分析** ...
标题"memcache-demo"指的是一个关于Memcache的示例项目,其中可能包含如何在Java环境中,特别是在使用XMemcached这个客户端库时,集成和使用Memcache的代码实例。XMemcached是一个高效、稳定的Java Memcached客户端...
cacheEhCacheUtils - 基于ehcache的工具类LruCacheUtils - 基于LinkedHashMap实现LRU缓存的工具类MemcachedUtils - 基于memcached的工具类XMemcachedUtils - 基于memcached的工具类(使用XMemcached客户端)Redis...