1、xmemcached是什么?
xmemcached是基于java nio实现的memcached客户端api。
实际上是基于我实现的一个简单nio框架
的基础上实现的(目前是基于yanf4j 0.52),核心代码不超过1000行,序列化机制直接挪用spymemcached的transcoder。
性能方面,在读写简单类型上比之spymemcached还是有差距,在读写比较大的对象(如集合)有效率优势。
当
前0.50-beta版本,仅支持单个memcached服务器,以后考虑扩展。目前已经支持get、set、add、replace、delete、
incr、decr、version
这几个协议。api为阻塞模型,而非spymemcached的异步模式,异步模型在批处理的时候有优势,但是阻塞模
式在编程难度和使用上会容易很多。
2、为什么叫xmemcached?
因为我在厦门(xm)混饭......
3、xmemcached的下载和使用
项目凯发推荐主页:
下载地址:
下载的压缩包中包括了依赖库、源码和打包后的jar,放到项目的lib目录下即可使用。
示例参考:
package
net.rubyeye.xmemcached.test;
import
java.util.arraylist;
import
java.util.list;
import
java.util.map;
import
java.io.serializable;
import
net.rubyeye.xmemcached.xmemcachedclient;
class
name
implements
serializable {
string firstname;
string lastname;
int
age;
int
money;
public
name(string firstname, string lastname,
int
age,
int
money) {
super
();
this
.firstname
=
firstname;
this
.lastname
=
lastname;
this
.age
=
age;
this
.money
=
money;
}
public
string tostring() {
return
"
[
"
firstname
"
"
lastname
"
,age=
"
age
"
,money=
"
money
"
]
"
;
}
}
public
class
example {
public
static
void
main(string[] args) {
try
{
string ip
=
"
192.168.222.100
"
;
int
port
=
11211
;
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
"
);
//
get操作
string name
=
(string) client.get(
"
hello
"
);
system.out.println(name);
//
批量获取
list
<
string
>
keys
=
new
arraylist
<
string
>
();
keys.add(
"
hello
"
);
keys.add(
"
test
"
);
map
<
string, object
>
map
=
client.get(keys);
system.out.println(
"
map size:
"
map.size());
//
delete操作
if
(
!
client.delete(
"
hello
"
,
1000
)) {
system.err.println(
"
delete error
"
);
}
//
incr,decr
client.incr(
"
a
"
,
4
);
client.decr(
"
a
"
,
4
);
//
version
string version
=
client.version();
system.out.println(version);
//
增删改查自定义对象
name dennis
=
new
name(
"
dennis
"
,
"
zhuang
"
,
26
,
-
1
);
system.out.println(
"
dennis:
"
dennis);
client.set(
"
dennis
"
,
0
, dennis);
name cachedperson
=
(name) client.get(
"
dennis
"
);
system.out.println(
"
cachedperson:
"
cachedperson);
cachedperson.money
=
-
10000
;
client.replace(
"
dennis
"
,
0
, cachedperson);
name cachedperson2
=
(name) client.get(
"
dennis
"
);
system.out.println(
"
cachedperson2:
"
cachedperson2);
//
delete
client.delete(
"
dennis
"
);
system.out.println(
"
after delete:
"
client.get(
"
dennis
"
));
client.shutdown();
}
catch
(exception e) {
e.printstacktrace();
}
}
}
4、xmemcached的计划?
1)、添加多服务器和集群支持
2)、性能优化、重构
3)、添加cas原子操作以及更多协议支持
有兴趣的瞧瞧,提提建议。
相关推荐
memcached的java客户端已经存在三种了:官方提供的基于传统阻塞io由greg whalin维护的客户端;dustin sallings实现的基于java nio的spymemcached;xmemcached
xmemcached是基于java nio实现的高性能可扩展的memcached客户端。它的主要特点: 高性能,稳定可靠,已经在众多公司的众多项目里得到应用。 功能完备:客户端分布式、权重、最新最完整的协议支持。 ...
2.spymemcached,支持异步,单线程的memcached客户端,用到了java1.5版本的concurrent和nio,存取速度会高于前者,但是稳定性不好,测试中常 报timeout等相关异常。 3.xmemcached,xmemcached也使用得比较广泛,而且...
xmemcached是基于 java nio的memcached客户端,java nio相比于传统阻塞 io 模型来说,有 效率高(特别在高并发下)和资源耗费相对较少的优点。传统阻塞 io为了提高效率,需要 创建一定数量的连接形成连接池,而 nio...
memcached的java客户端已经存在两个了:官方提供的基于传统阻塞io由greg whalin维护的客户端、dustin sallings实现的基于java nio的spymemcached。另外还有一些在此基础上的改进版本。相比于这些客户端,xmemcached...
介绍xmemcached是java中的一种高性能,易于使用的阻塞多线程memcached客户端。 它是基于nio的,并且经过了精心设计,以实现最佳性能。快速开始:有助于源代码并将其签出到本地计算机。 进行更改并创建拉取请求。 ...
基于java nio实现的高性能可扩展的memcached客户端。虽然java的memcached库已经很多,但是这些java开源memcached库并没有一个是基于nio框架编写,因此并不能够充分发挥java nio的性能优势.... 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), and was carefully tuned to get top ...
xmemcached 是一个高性能、易用的 java 阻塞多线程 memcached 客户端。 它基于 nio 并经过精心设计以获得最佳性能。 ##新闻和下载 。 maven 依赖: <groupid>com.googlecode.xmemcached</groupid> ...
请问一下 目前 xmemcached 执行的jdk版本是多少? 目前仅兼容到1.5,1.4不兼容;如果需要,你可以自己编译打包一个版本。 从我的角度,不推荐在1.4上使用nio,nio在1.4上的bug很多。 这个包是我做的演示工程。
spring xmemcached aop切面 需要xmemcached-1.2.5 spring-2.5.6 class="net.rubyeye.xmemcached.utils.xmemcachedclientfactorybean" destroy-method="shutdown"> ${xmemcached_servers} <!-- ...
simple-spring-memcached-3.5.0.jar slf4j-api-1.6.0.jar slf4j-log4j12-1.6.0.jar solr-solrj-3.4.0.jar spring-aop-4.1.6.release.jar spring-aspects-4.1.6.release.jar spring-beans-4.1.6.release.jar ...