如今的web系统已经愈来愈多的应用缓存技术,并且缓存技术确实是能实足的加强系统性能的。我在项目中也开始接触一些缓存的需求。java
需求的增加也就带来了系统的变化,也正为这种变化我开始思考怎么让这些代码兼容,并为之后的系统模块提供比较统一的支持。正好在openfire这个开源项目上获得了启发,它的集群思路我以为是种不错的解决方案。git
随后就开始写一个简单的缓存系统,结构很是的简单,代码也很是的简单。说是开源其实也有点过了,只是以为闭门造车没有意思,因此将代码放在github上,若是有高手看到指点一下那我不是赚大了。哈哈。github
github:https://github.com/mini188/j2cacheweb
代码很是简单,maven工程引入也很容易,我就不打算对代码作啥说明,有兴趣的朋友下载简单看看就能明白。 redis
个人测试方法比较简单,向缓存里连续写100万个对象,而后看看处理的性能。说明一下,这些测试都是在本机完成的缓存
OS:Windows7 64位服务器
CPU:I5-4210U @ 1.70GHZ 2.40GHZ网络
RAM:8Gsession
Redis用的是Redis on Windows Redis-x64-3.2.100jvm
总共耗时:2380ms
每毫秒写入:420条
每秒写入:420000条
总共耗时:9503ms
每毫秒写入:105条。
每秒写入:105000条。
总共耗时:40367ms
每毫秒写入:24条。
每秒写入:24000条。
为了对各类方案进行一些数据上对比,作了一个简单的写入测试,使用本地内存作缓存这种方案最高效,写入量达到42万每秒。而redis则只达到了24000条/秒,我对redis不是特别熟悉,看到这个数据有点诧异。
我比较懒,没有测试一段时间内的读写性能,只不过从这个简单的测试中发现,本地内存的效果仍是很高的,若是加上一些其余的功能,好比网络传输,数据同步等后性能会降低。
只不过redis和ignite差这么大我没有搞明白,不知道是否是个人方法不对呢?