xmemcached spring user guide

http://code.google.com/p/xmemcached/wiki/User_Guide_zh html

 

XMemcached简介

XMemcached是一个新java memcached client。也许你还不知道memcached是什么?能够先看看这里。简单来讲,Memcached 是一个高性能的分布式内存对象的key-value缓存系统,用于动态Web应用以减轻数据库负载,如今也有不少人将它做为内存式数据库在使用,memcached经过它的自定义协议与客户端交互,而XMemcached就是它的一个java客户端实现。 java

Memcached的java客户端已经存在两个了:官方提供的基于传统阻塞io由Greg Whalin维护的客户端、Dustin Sallings实现的基于java nio的Spymemcached。另外还有一些在此基础上的改进版本。相比于这些客户端,XMemcached有什么优势呢?或者说,它的主要特性有哪些? 算法

XMemcached的主要特性

高性能

XMemcached一样是基于java nio的客户端,java nio相比于传统阻塞io模型来讲,有效率高(特别在高并发下)和资源耗费相对较少的优势。传统阻塞IO为了提升效率,须要建立必定数量的链接造成链接池,而nio仅须要一个链接便可(固然,nio也是能够作池化处理),相对来讲减小了线程建立和切换的开销,这一点在高并发下特别明显。所以XMemcached与Spymemcached在性能都很是优秀,在某些方面(存储的数据比较小的状况下)Xmemcached比Spymemcached的表现更为优秀,具体能够看这个Java Memcached Clients Benchmark数据库

支持完整的协议

Xmemcached支持全部的memcached协议,包括1.4.0正式开始使用的二进制协议编程

支持客户端分布

Memcached的分布只能经过客户端来实现,XMemcached实现了此功能,而且提供了一致性哈希(consistent hash)算法的实现。 缓存

容许设置节点权重

XMemcached容许经过设置节点的权重来调节memcached的负载,设置的权重越高,该memcached节点存储的数据将越多,所承受的负载越大。 并发

动态增删节点

XMemcached容许经过JMX或者代码编程实现节点的动态添加或者移除,方便用户扩展和替换节点等。 框架

支持JMX

XMemcached经过JMX暴露的一些接口,支持client自己的监控和调整,容许动态设置调优参数、查看统计数据、动态增删节点等。 分布式

与Spring框架和Hibernate-memcached的集成

鉴于不少项目已经使用Spring做为IOC容器,所以XMemcached也提供了对Spring框架的集成支持。Hibernate-memcached是一个容许将memcached做为hibernate的二级缓存的开源项目,默认是使用Spymemcached,Xmemcached提供了对这个项目的支持,容许替换Spymemcached. ide

客户端链接池

刚才已经提到java nio一般对一个memcached节点使用一个链接,而XMemcached一样提供了设置链接池的功能,对同一个memcached能够建立N个链接组成链接池来提升客户端在高并发环境下的表现,而这一切对使用者来讲倒是透明的。启用链接池的前提条件是保证数据之间的独立性或者数据更新的同步,对同一个节点的各个链接之间是没有作更新同步的,所以应用须要保证数据之间是相互独立的或者所有采用CAS更新来保证原子性。

可扩展性

XMemcached是基于java nio框架yanf4j实现的,所以在实现上结构相对清楚,分层比较明晰,在xmemcached 1.2.5以后已经将yanf4j合并到xmemcached,所以再也不须要依赖yanf4j,下面是XMemcached的主要类的UML图

===========具体参考用户手册

http://code.google.com/p/xmemcached/wiki/User_Guide_zh

相关文章
相关标签/搜索