XMemcached是一个新java memcached client。也许你还不知道memcached是什么?能够先看看这里。简单来讲,Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,如今也有不少人将它做为内存式数据库在使用,memcached经过它的自定义协议与客户端交互,而XMemcached就是它的一个java客户端实现。java
一、高性能
二、支持完整的memcached文本协议,二进制协议将在1.2版本实现。
三、支持JMX,能够经过MBean调整性能参数、动态添加/移除server、查看统计等。
四、支持客户端统计
五、支持memcached节点的动态增减。
六、支持memcached分布:余数分布和一致性哈希分布。
七、更多的性能调整选项。spring
MemcachedClientBuilder builder = new XMemcachedClientBuilder( AddrUtil.getAddresses("192.168.1.107:11211")); MemcachedClient client = null; client = builder.build(); client.set("userid", 30, 1);// 此处30为过时时间,单位:秒 logger.info("set后结果为:" + (Integer)client.get("userid")); client.get("userid", 1000);// 此处1000表示超时时间为1秒 client.add("username", 0, "hello");// 0表示永久存储 logger.info("add后结果为:" + (String)client.get("username")); client.append("username", "1"); logger.info("append后结果为:" + (String)client.get("username")); client.delete("username"); logger.info("delete后结果为:" + (String)client.get("username")); client.shutdown();
[main] allapp.XmemcachedApp1 - set后结果为:1 [main] allapp.XmemcachedApp1 - add后结果为:hello [main] allapp.XmemcachedApp1 - append后结果为:hello1 [main] allapp.XmemcachedApp1 - delete后结果为:null
一致性哈希配置:数据库
MemcachedClientBuilder builder = new XMemcachedClientBuilder( AddrUtil.getAddresses("server1:11211 server2:11211 server3:11211")); builder.setSessionLocator(new KetamaMemcachedSessionLocator()); MemcachedClient client = builder.build();
集成spring配置:缓存
<bean name="memcachedClient" class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" destroy-method="shutdown"> <property name="servers"> <value>192.168.1.107:11211</value> </property> </bean>
ApplicationContext context = new ClassPathXmlApplicationContext( "/spring/memcached-config.xml"); MemcachedClient client = (MemcachedClient) context .getBean("memcachedClient"); client.set("name1", 0, "hahah"); logger.info((String)client.get("name1"));
Xmemcached项目wiki:http://code.google.com/p/xmemcached/w/listruby