2010-11-06 02:16
1、xmemcached是什么?
基于java nio实现的memcached客户端API。
实际上是基于我实现的一个简单nio框架 http://code.google.com/p/yanf4j/
的基础上实现的(目前是基于yanf4j 0.54),序列化机制直接挪用spymemcached的Transcoder。
性能方面与spymemcached相比各有优势,spymemcached在windows和linux两个平台上的效率差异很大(特别是容器类
大对象的读写上),而xmemcached就没有这个问题,如果你的get操作远远多于存储操作,那么xmemcached对于get的优化在并发下的效
果更加明显。
当前1.0-beta版本,支持memcached的分布式(余数哈希和一致性哈希算法)。目前已经支持get、set、add、replace、
cas、 append、prepend、批量get/gets、delete、incr、decr、version这几个协议。API为阻塞模型,而非
spymemcached的异步模型,异步模型在批处理的时候有优势,但是阻塞模型在编程难度和使用上会容易很多。
后续计划:
1.0 正式稳定版
1.1 着重性能优化
2、为什么叫xmemcached?
因为我在厦门(XM)混饭......
3、xmemcached的下载和使用
项目主页:http://code.google.com/p/xmemcached/
下载地址:http://code.google.com/p/xmemcached/downloads/list
wiki地址:http://code.google.com/p/xmemcached/w/list
下载的压缩包中包括了依赖库、源码和打包后的jar,放到项目的lib目录下即可使用。
使用:
-
import
net.rubyeye.xmemcached.XMemcachedClient;
-
......
-
......
-
-
XMemcachedClient client=
new
XMemcachedClient(ip, port);
-
-
if
(!client.set(
"hello"
,
0
,
"dennis"
)){
-
System.err.println(
"set error"
);
-
}
-
client.add(
"hello"
,
0
,
"dennis"
);
-
client.replace(
"hello"
,
0
,
"dennis"
);
-
-
-
String name=(String)client.get(
"hello"
);
-
-
-
List<String> keys=
new
ArrayList<String>();
-
keys.add(
"hello"
);
-
keys.add(
"test"
);
-
Map<String,Object> map=client.get(keys);
-
-
-
if
(!client.delete(
"hello"
,
1000
)){
-
System.err.println(
"delete error"
);
-
}
-
-
-
client.incr(
"a"
,
4
);
-
client.decr(
"a"
,
4
);
-
-
-
String version=client.version();
-
-
client.shutdown();
-
xmemcached与spymemcached的对比
:
1、xmemcached比spymemcached有更好的性能表现,在get、set、delete、multi-gets等操作的测试中都远远超过或者接近spymemcached。
xmemcached在win32和linux两个平台上都有极佳的性能表现。
2、xmemcached支持动态地添加或者移除memcached server,可以通过编程或者JMX来做到。
3、xmemcached支持JMX,可以通过jmx调整性能参数、添加/移除memcached节点、查看统计
4、xmemcached有客户端统计,可以统计xmemcached客户端的各种操作的总次数
5、xmemcached允许调整更多的网络层参数和优化选项.
6、xmemcached暂未支持二进制协议,计划在1.2版本中实现。
7、xmemcached的API模型是同步的,而spymemcached的API模型是异步模型,同步模型对应用编程来说更容易使用和直观。
8、xmemcached的序列化机制,是使用了spymemcached的序列化机制,并做了部分改造。
项目主页:http://code.google.com/p/xmemcached/
Java memcached
客户端——XMemcached
发布1.2.5版本,这是1.2的最后一个小版本,主要的改进如下:
1、合并yanf4j到xmemcached,目前只是简单的源码合并,以及去除了不需要的udp支持。因此从1.2.5开始,xmemcached
不再依赖yanf4j,仅依赖slf4j
。
2、支持SASL验证。memcached
1.4.3新增了SASL授权特性,启用了SASL的memcached会要求客户端进行授权验证,否则将拒绝请求,对于需要验证的用户来说是个可选的特性,关于memcached的SASL支持更多请看这里
。Xmemcached
1.2.5开始支持客户端的SASL验证,一个典型的使用例子如下:
-
MemcachedClientBuilder builder =
new
XMemcachedClientBuilder(
-
AddrUtil.getAddresses(
"localhost:11211"
));
-
builder.addAuthInfo(AddrUtil.getOneAddress(
"localhost:11211"
), AuthInfo
-
.typical(
"cacheuser"
,
"123456"
));
-
-
builder.setCommandFactory(
new
BinaryCommandFactory());
-
MemcachedClient client=builder.build();
3、加快MemcachedClient.shutdown()方法的速度,应用可以更快地关闭xmemcached。
4、完善中文用户指南
,添加客户端分布和SASL验证两节。
更多信息请参见wiki和changelog
XMemcached是一个基于java nio的memcached
客户端
项目主页: http://code.google.com/p/xmemcached/
下载地址: http://code.google.com/p/xmemcached/downloads/list
wiki地址:http://code.google.com/p/xmemcached/w/list
分享到:
相关推荐
Xmemcached是基于java nio实现的高性能可扩展的memcached客户端。它的主要特点: 高性能,稳定可靠,已经在众多公司的众多项目里得到应用。 功能完备:客户端分布式、权重、最新最完整的协议支持。 ...
在Java开发中,有三种主流的Memcached客户端库供开发者选择:官方的基于传统阻塞IO的客户端、Dustin Sallings实现的基于Java NIO的Spymemcached以及XMemcached。 1. **官方客户端** 官方提供的客户端是由Greg ...
本篇文章将详细介绍两个常用的Java Memcached客户端:xmemcached和memcache-client-forjava。 **1. xmemcached** xmemcached是由Ketoo开发的一个高性能、高可用性的Java Memcached客户端。它提供了丰富的API,支持...
Memcached的java客户端已经存在三种了: 1.官方提供的基于传统阻塞io由Greg Whalin维护的客户端。 较早推出的memcached JAVA客户端API,应用广泛,运行比较稳定。 2.spymemcached,支持异步,单线程的memcached客户端...
xmemcached-1.2.4的官方源码。 xmemcached XMemcached is a high performance, easy to use blocking multithreaded memcached client in java. It's nio based (using my opensource nio framework :yanf4j), ...
XMemcached是基于 java nio的Memcached客户端,java nio相比于传统阻塞 io 模型来说,有 效率高(特别在高并发下)和资源耗费相对较少的优点。传统阻塞 IO为了提高效率,需要 创建一定数量的连接形成连接池,而 nio...
- **性能对比**:与Spymemcached等其他Java客户端相比,在特定情况下(例如存储较小的数据时),XMemcached表现得更加优秀。具体可以参考[Java Memcached Clients Benchmark](https://example.com)以获取更详细的...
xmemcached是一款高性能、轻量级的Java客户端库,专为Memcached缓存系统设计,其1.4.3版本提供了丰富的功能和优化,旨在提升应用的性能和可扩展性。在本文中,我们将详细探讨xmemcached的核心特性和使用方法,帮助...
介绍XMemcached是Java中的一种高性能,易于使用的阻塞多线程memcached客户端。 它是基于nio的,并且经过了精心设计,以实现最佳性能。快速开始:有助于源代码并将其签出到本地计算机。 进行更改并创建拉取请求。 ...
xmemcached是一个高性能、易用且功能丰富的Java Memcached客户端库。它提供了全面的API,使得开发者能够方便地与Memcached缓存系统进行交互,从而提高Web应用的性能和响应速度。本文将深入探讨xmemcached的相关知识...
Memcached 的 Java 客户端实现使用了 Spring+XMemcached 实现,XMemcached 支持所有的文本协议和二进制协议。支持动态添加和删除 M 节点。支持客户端统计。支持节点的权重设置,支持 nio 的连接池,网络实现层是长...
XMemcached 是一个高性能、易用的 Java 阻塞多线程 memcached 客户端。 它基于 nio 并经过精心设计以获得最佳性能。 ##新闻和下载 。 Maven 依赖: <groupId>com.googlecode.xmemcached</groupId> ...
基于java nio实现的高性能可扩展的memcached客户端。虽然Java的memcached库已经很多,但是这些Java开源memcached库并没有一个是基于NIO框架编写,因此并不能够充分发挥Java NIO的性能优势.... xmemcached的项目主页...
- **监控与调优**: 使用xmemcached-tools或其他第三方工具定期检查Memcached和Xmemcached的运行状态,进行性能调优。 7. **总结** Xmemcached作为Java实现的Memcached客户端,以其高效、稳定和易用性,广泛应用于...
XMemcached是一款高效能的Java客户端库,专为memcached服务设计。memcached是一种分布式内存缓存技术,主要用于减轻数据库的压力并加速动态Web应用程序的响应速度。XMemcached不仅支持memcached的所有协议,还具备一...
Xmemcached是一款基于Java编写的高性能、高可用性的Memcached客户端库,由Kafka的创始人Jay Kreps开发。它提供了丰富的功能和优秀的性能,使得在Java应用中集成和使用Memcached变得更加简单。Xmemcached致力于提供...
需要xmemcached-1.2.5+spring-2.5.6 class="net.rubyeye.xmemcached.utils.XMemcachedClientFactoryBean" destroy-method="shutdown"> ${XMemcached_servers} <!-- server's weights --> ...
Xmemcached是一个高性能、轻量级的Java客户端库,专门用于连接和操作Memcached分布式内存缓存系统。这份手册不仅包含了基础的API使用方法,还涵盖了如何将Xmemcached与Spring等主流框架进行集成的详细配置信息。 **...
4. **Memcached的Java客户端实现** - **Google的Memcached实现**:基于Whalin的开源实现,提供接口化、配置文件初始化、集群支持和本地缓存功能。优化SocketIO以提高性能,通过配置文件指定集群节点,实现软负载...