参考文档:https://code.google.com/p/xmemcached/wiki/User_Guide_zh
1:下载
xmemcached-1.4.2-bin-with-dependencies.tar.gz |
https://code.google.com/p/xmemcached/downloads/list
解压文件,将其中的slf4j-api-1.7.5.jar 和 xmemcached-1.4.2.jar 放到项目
2:加入如下配置:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" default-lazy-init="true"> <description>Xmemcached 缓存配置</description> <bean name="memcachedClientBuilder" class="net.rubyeye.xmemcached.XMemcachedClientBuilder"> <!-- XMemcachedClientBuilder have two arguments.First is server list,and second is weights array. --> <constructor-arg> <list> <bean name="memcachedServer1" class="java.net.InetSocketAddress"> <constructor-arg> <value>192.168.6.253</value> </constructor-arg> <constructor-arg> <value>11311</value> </constructor-arg> </bean> <!-- 配置多个服务器节点 <bean class="java.net.InetSocketAddress"> <constructor-arg> <value>localhost</value> </constructor-arg> <constructor-arg> <value>12001</value> </constructor-arg> </bean> --> </list> </constructor-arg> <constructor-arg> <list> <value>1</value> <!-- 配置多个服务器节点 权重 <value>2</value> --> </list> </constructor-arg> <!-- <property name="authInfoMap"> <map> <entry key-ref="memcachedServer1"> <bean class="net.rubyeye.xmemcached.auth.AuthInfo" factory-method="typical"> <constructor-arg index="0"> <value>cacheuser</value> </constructor-arg> <constructor-arg index="1"> <value>123456</value> </constructor-arg> </bean> </entry> </map> </property> --> <property name="connectionPoolSize" value="1"></property> <property name="commandFactory"> <bean class="net.rubyeye.xmemcached.command.TextCommandFactory"></bean> <!-- <bean class="net.rubyeye.xmemcached.command.BinaryCommandFactory"></bean> --> </property> <!-- 采用一致性Hash 算法实现 --> <property name="sessionLocator"> <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"></bean> </property> <property name="transcoder"> <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" /> </property> <!-- ByteBuffer allocator --> <property name="bufferAllocator"> <bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"></bean> </property> <!-- Failure mode --> <property name="failureMode" value="false"/> </bean> <!-- Use factory bean to build memcached client --> <bean name="memcachedClient" factory-bean="memcachedClientBuilder" factory-method="build" destroy-method="shutdown" /> </beans>
3:写单元测试:
package com.capitalbio.soft.test.xmemcached; import net.rubyeye.xmemcached.MemcachedClient; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.test.context.ContextConfiguration; import com.capitalbio.soft.core.utils.spring.SpringContextHolder; import com.capitalbio.soft.entity.account.Authority; import com.capitalbio.soft.entity.account.Role; import com.capitalbio.soft.test.core.SpringTransactionalTestCase; @ContextConfiguration(locations = { "/applicationContext.xml","/applicationContext-xmemcached.xml" }) public class MemcachedTest extends SpringTransactionalTestCase { private Logger logger = LoggerFactory.getLogger(getClass()); @Test public void testMemcached() { try { MemcachedClient client = SpringContextHolder.getBean(MemcachedClient.class); logger.debug("{}",client.get("key_conf")); boolean ret = client.set("key_conf", 0, new Role(1l, "张三en")); if(ret) { ret = client.replace("key_conf", 0, new Authority(1l, "权限")); if(ret) logger.debug("{}",client.get("key_conf")); } if(client.delete("key_conf")){ logger.debug("删除成功! - {}",client.get("key_conf")); } // client.setWithNoReply // client.deleteWithNoReply // client.replaceWithNoReply } catch (Exception e) { e.printStackTrace(); } } }
4:
到http://www.newasp.net/soft/63735.html#downloads
下载windows版本的memcached,解压文件到无空格,无中文目录
5:
将下面代码保存为bat,更改其中的memcached路径为memcached解压的路径,且执行
@echo off rem -c 代表访问memcached的并发数, -m 代表最大内存 -p 代表端口 sc create memcached_11311 binPath= "D:\\exec\\Memcached\\memcached_en32or64\\x64\\memcached.exe -d runservice -c 1111 -m 1024 -p 11311" DisplayName= "memcached_11311" start= auto pause;
6:启动项目,执行单元测试看是否成功!
7:以上配置为Spring3.0的,Spring3.0以下的配置为:
<!-- 以下是xmemcached对于spring3.0以下版本的配置 --> <!-- memcachedClient 简单配置 <bean name="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" destroy-method="shutdown"> <property name="servers"> <value>host1:port host2:port2</value> </property> </bean> --> <!-- memcached 复杂配置 --> <bean name="server1" class="java.net.InetSocketAddress"> <constructor-arg> <value>host1</value> </constructor-arg> <constructor-arg> <value>port1</value> </constructor-arg> </bean> <bean name="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" destroy-method="shutdown"> <property name="servers"> <value>host1:port,host2:port host3:port,host4:port</value> </property> <!-- server's weights --> <property name="weights"> <list> <value>1</value> <value>2</value> <value>3</value> </list> </property> <!-- AuthInfo map,only valid on 1.2.5 or later version --> <property name="authInfoMap"> <map> <entry key-ref="server1"> <bean class="net.rubyeye.xmemcached.auth.AuthInfo" factory-method="typical"> <constructor-arg index="0"> <value>cacheuser</value> </constructor-arg> <constructor-arg index="1"> <value>123456</value> </constructor-arg> </bean> </entry> </map> </property> <!-- nio connection pool size --> <property name="connectionPoolSize" value="2"></property> <!-- Use text protocol,二进制协议在xmemcached里使用namespace的时候有问题 --> <property name="commandFactory"> <bean class="net.rubyeye.xmemcached.command.TextCommandFactory"></bean> </property> <!-- Distributed strategy --> <property name="sessionLocator"> <bean class="net.rubyeye.xmemcached.impl.KetamaMemcachedSessionLocator"></bean> </property> <!-- Serializing transcoder --> <property name="transcoder"> <bean class="net.rubyeye.xmemcached.transcoders.SerializingTranscoder" /> </property> <!-- ByteBuffer allocator --> <property name="bufferAllocator"> <bean class="net.rubyeye.xmemcached.buffer.SimpleBufferAllocator"></bean> </property> <!-- Failure mode --> <property name="failureMode" value="false" /> </bean>
8:具体请参见官方文档:https://code.google.com/p/xmemcached/wiki/User_Guide_zh
相关推荐
8. **易于集成**:Xmemcached与Spring框架有很好的兼容性,可以方便地与Spring的缓存抽象层集成,简化开发工作。 **Xmemcached版本1.3.3** 版本1.3.3是Xmemcached的一个稳定版本,可能包含了一些错误修复、性能...
- 对于使用Maven构建项目的用户,可以通过简单的依赖声明(如上述示例)轻松集成XMemcached。 #### 示例代码 以下是一段简单的XMemcached使用示例,展示如何建立连接、读写数据以及释放资源: ```java import ...
这份手册不仅包含了基础的API使用方法,还涵盖了如何将Xmemcached与Spring等主流框架进行集成的详细配置信息。 **1. Xmemcached框架介绍** Xmemcached由Kafka Chen发起,设计目标是提供一个简单易用且高效的...
这些API设计直观,易于理解和使用,使得开发人员能够快速集成Memcached到他们的项目中。 1. 连接管理:xmemcached支持多线程环境下的连接池管理,可以配置连接池大小,自动重连和心跳检测机制,确保了与Memcached...
xmemcached 可以集成监控框架如 JMX,用于实时查看客户端状态和性能指标。同时,通过配置日志框架,可以记录操作日志,便于排查问题。 ### 六、apidocs `apidocs` 文件夹包含了 xmemcached 的 JavaDoc,是学习和...
此外,XMemcached还支持与Hibernate-Memcached集成,后者允许将Memcached用作Hibernate的二级缓存。 **8. 客户端连接池** - **提升并发性能**:尽管Java NIO模型通常每个Memcached节点只需要一个连接,但XMemcached...
本文将深入探讨memcache的三种常见Java客户端实现:spymemcached、xmemcached和原生的memcache接口。 1. **spymemcached**: spymemcached是由Spy公司开发的一个开源Java客户端,它是Memcached最常用的Java库之一...
Xmemcached是基于java nio实现的高性能可扩展的... 可扩展,易于集成 可动态增删memached节点 客户端操作统计 NIO连接池 等等,更多信息请见wiki文档。 标签:XMemcached
此外,还可以探索其他开源项目和库,看看它们如何集成Kestrel和XMemcached,以便从中学习最佳实践。 总的来说,掌握Kestrel和XMemcached的使用,不仅可以提升系统的性能和可扩展性,还能为开发者在解决复杂分布式...
“mule ce xmemcached” 指的是Mule Community Edition(社区版)集成XMemcached的场景。Mule是一款强大的企业级服务总线(ESB)和集成平台,而XMemcached则是一个高性能、轻量级的Java Memcached客户端库。 **描述...
7. **框架集成**:与Spring框架和Hibernate-memcached无缝集成,使得在使用这些框架的项目中轻松引入Memcached缓存。 8. **客户端连接池**:为了提升高并发环境下的性能,XMemcached支持创建连接池,但需要保证数据...
7. **Spring和Hibernate集成**:与Spring框架无缝集成,同时支持Hibernate-memcached,作为二级缓存解决方案,可替代Spymemcached。 8. **客户端连接池**:允许创建连接池以应对高并发场景,但需要注意数据独立性和...
【Xmemcached/jedis Spring Demo】是一个整合了Xmemcached和jedis的Spring示例项目,旨在帮助开发者理解和学习如何在Spring框架中集成并使用这两种流行的NoSQL客户端库。Xmemcached是Java编写的高效、易用的...
这个库的主要目标是提供简单、快速、无阻塞的客户端API,以便于开发人员在Java应用程序中集成和利用Memcached的强大功能。下面将详细讨论Xmemcached的关键特性和使用方法。 1. **Memcached简介** Memcached是一种...
通过XMemcached,开发者可以方便地在Java应用中集成缓存功能,优化数据读取速度,降低对后端数据库的依赖。 Spring TaskExecutor是Spring框架的一部分,提供了异步任务执行的能力。它允许开发者创建线程池,调度和...
在Spring框架中,可以通过注解配置将Ehcache集成到业务逻辑中,例如使用`@Cacheable`、`@CacheEvict`等注解实现自动的缓存操作。 2. **xmemcached**: xmemcached是Java的一个高性能、线程安全的Memcached客户端库。...
### Spring集成Memcached详解 #### 一、Memcached简介与客户端选择 Memcached是一种高性能、分布式内存对象缓存系统,用于减轻数据库负载、加速动态Web应用,并提高网站速度。Spring框架可以通过集成Memcached来...
- Xmemcached是Java社区开发的一个高效Memcached客户端,它支持异步操作,具有高并发性,同时提供了丰富的API和异常处理机制。 3. **Spring集成**: - Spring框架提供了缓存抽象,允许开发者通过注解或XML配置来...
阿里ocs的java客户端demo,我测试了xmemcached和spymemcached。两个都可用,但xmc可以交由spring管理client对象的生命周期,而spymc却是spring能创建但无法关闭,研究结果为:用xmc来做客户端,需注意的地方就是...
标题"memcache-demo"指的是一个关于Memcache的示例项目,其中可能包含如何在Java环境中,特别是在使用XMemcached这个客户端库时,集成和使用Memcache的代码实例。XMemcached是一个高效、稳定的Java Memcached客户端...