XMemcached简介:
XMemcached是一个新java memcached client。也许你还不知道memcached是什么?可以先看看这里。简单来说,Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,现在也有很多人将它作为内存式数据库在使用,memcached通过它的自定义协议与客户端交互,而XMemcached就是它的一个java客户端实现。
主要特性:
1、高性能
2、支持完整的memcached文本协议,二进制协议将在1.2版本实现。 3、支持JMX,可以通过MBean调整性能参数、动态添加/移除server、查看统计等。 4、支持客户端统计 5、支持memcached节点的动态增减。 6、支持memcached分布:余数分布和一致性哈希分布。 7、更多的性能调整选项。简单示例:
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配置:
192.168.1.107:11211
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/list