mecached

MemcachedClient4J简单介绍

家住魔仙堡 提交于 2019-12-10 01:39:48
算是我第一个开源作品,之前也写过一些半成品,最终没有完成。这是一个使用netty3框架写的mecached客户端,实现mecached ASII协议,性能上超过Spymecached.还有很多特性及扩展有待完善 , 后面会把性能测试报告补上 。这个客户提供同步和异步接口,使用方法很简单,例子如下: MemcachedClient memcachedClient = new MemcachedClient(new String[]{"127.0.0.1:11211" }) ; //sync boolean set1 = memcachedClient.set("key1", "Hi") ; boolean set2 = memcachedClient.set("key2", "Hello") ; Map<String, Object> gets = memcachedClient.gets("key1" ,"key2") ; System.out.println(String.format("set key1 : %s ", set1)); System.out.println(String.format("set key2 : %s ", set2)); System.out.println(String.format("key1: %s", gets.get("key1")));

MemcachedClient4J测试报告

走远了吗. 提交于 2019-12-10 01:32:46
目的 主要是了解 MemcachedClient4J实际性能,对下步优化提供依据 场景 采用跟spymecached对比测试,分别在大负荷的情况下,观察两者性能表现,主要观察指标有耗时和出错率。 测试环境 mecached服务器 数量:1 系统:centos 6.4 cpu:Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz 内存:4G mecached参数:内存512M 客户端 系统:centos 6.4 cpu:Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz 内存:4G jdk:1.6.0_38-b05 Netty : 3.7.0.Final 设置 TCP_NODELAY 为 true io worker 为 cpus 个数 测试结果 结论和分析 MemcahcedClient4J在同样的压力下表现比spymemcached较好,但差距不是很大,这也是我意料之中。memcachedClient4J所使用的netty框架是支持多线程worker,测试只有一个memcached节点,实际上所有读写处理还是由同一个worker线程处理,跟 单线程nio的 spymemcached基本处理同一个等级水平。但是netty对IO写都有一个小优化,通常的NIO写操作都是放入一个缓冲队列,等待reactor去写。在队列为空的情况下