Memcached各Java Client的使用性能一直都存在争议,这里只简要说说各自的利弊,至于具体使用哪种,那就仁者见仁了,不必多做解释。
一、Memcached Client简要介绍
Memcached Client目前有3种:
- Memcached Client for Java
- SpyMemcached
- XMemcached
这三种Client一直存在各种争议:
- Memcached Client for Java 比 SpyMemcached更稳定、更早、更广泛;
- SpyMemcached 比 Memcached Client for Java更高效;
- XMemcached 比 SpyMemcache并发效果更好。
参考官方性能对比:
Memcached Client for Java:https://github.com/gwhalin/Memcached-Java-Client/wiki/PERFORMANCE
XMemcached:http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html
二、特性介绍
XMemcached特性:
- 高性能
- 支持完整的memcached文本协议,二进制协议。
- 支持JMX,可以通过MBean调整性能参数、动态添加/移除server、查看统计等。
- 支持客户端统计
- 支持memcached节点的动态增减。
- 支持memcached分布:余数分布和一致性哈希分布。
- 更多的性能调整选项。
- XMemcached更容易与Spring集成。而且,属于中国原创
三、总结
Xmemcached无论在低并发还是高并发访问的情况下,都可以保持一个比较优秀的性能表现,从xmc和spy的对比来看,xmc的优势相当大。
- 若对memached的访问负载并不高,Java-Memcached-Client是一个不错的选择,但是在高峰访问的时候可能命中率会有个急剧的波动
- 若对memached的访问负载较高,此时我推荐你选择xmemcached
- 若你需要异步的批量处理(future模式),可以选择spymemcached
- 若你不知道你的应用是什么状况,我推荐你用xmemcached,可以在任何情况下获得一个比较好的性能表现
本文引自:
http://snowolf.iteye.com/blog/1471805
http://blog.sina.com.cn/s/blog_3e8e98ef01018pfl.html