现在的web系统已经越来越多的应用缓存技术,而且缓存技术确实是能实足的增强系统性能的。我在项目中也开始接触一些缓存的需求。
  
  开始简单的就用jvm(java托管内存)来做缓存,这样对于单个应用服务器来说很好。
  
  为了系统的可用性,需要做灾备,那么就要多准备一套系统环境,这时就会有一些共享资源的问题,比如Tomcat的session共享出来几个系统会公用一套缓存数据,这样就变成一个共享池需求的增长也就带来了系统的变化,也正为这种变化我开始思考怎么让这些代码兼容,并为以后的系统模块提供比较统一的支持。正好在openfire这个开源项目上得到了启发,它的集群思路我觉得是种不错的解决方案。
  
  介绍随后就开始写一个简单的缓存系统,结构非常的简单,代码也非常的简单。说是开源其实也有点过了,只是觉得闭门造车没有意思,所以将代码放在github上,如果有高手看到指点一下那我不是赚大了。哈哈。
  
  代码非常简单,maven www.xyseo.net工程引入也很容易,我就不打算对代码做啥说明,有兴趣的朋友下载简单看看就能明白。
  
  项目主要特点:的存储结构基于java.util.Map<K, V>接口,这样很容易与hashmap之类的兼容基于策略模式的扩展为此项目中实现了三种存储方案:jvm虚拟机内存,适用于单应用,或者不需要同步的情况,适用于需要的场景,比如缓存共享等,一种带网络计算的方案的入测试测试机器环境:我的测试方法比较简单,向缓存里连续写100万个对象,然后看看处理的性能。说明一下,这些测试都是在本机完成的位CPU:用的是本地环境中写入1,000,000个对象的开始测试写入缓存总共耗时:每毫秒写入:420条每秒写入:420000条开始测试写入缓存总共耗时:每毫秒写入:105条。
  
  每秒写入:105000条。
  
  开始测试写入缓存总共耗时:每毫秒写入:24条。
  
  每秒写入:24000条。
  
  结果为了对各种方案进行一些数据上对比,做了一个简单www.tyff688.com的写入测试,使用本地内存做缓存这种方案最高效,写入量达到42万每秒。而redis则只达到了24000条/秒,我对redis不是特别熟悉,看到这个数据有点诧异。
  
  我比较懒,没有测试一段时间内的读写性能,只不过从这个简单的测试中发现,本地内存的效果还是很高的,如果加上一些其他的功能,比如网络传输,数据同步等后性能会下降。
  
  只不过redis和ignite www.zgktv.cn 差这么大我没有搞明白,不知道是不是我的方法不对呢?

最新文章

  1. ubuntu 14.04LTS 环境下配置NFS服务
  2. js实现文本框中内容的放大显示
  3. About_PHP_函数
  4. BT客户端实现 Peer协议设计
  5. Java语言程序设计(基础篇)第一章
  6. main函数的详解
  7. Azure 媒体服务可将优质内容传输至 Apple TV
  8. struts2 集成 easyui
  9. hdu1232 畅通工程
  10. BigDecimal类的简单使用方法
  11. 注意Thread.interrupt()方法的真正作用并不是用来中断线程
  12. C语言-结构体
  13. SGI STL内存配置器存在内存泄漏吗?
  14. Linux系统bash shell之历史命令
  15. touch.js下载使用方式
  16. Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录
  17. http和https区别及概念
  18. mysql 开发进阶篇系列 55 权限与安全(安全事项 )
  19. hdu 3530 &quot;Subsequence&quot; (单调队列)
  20. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

热门文章

  1. 第一次尝试使用JAVA编写的ATM机程序
  2. medoo数据库插入的问题
  3. SAP HANA STRING_AGG
  4. JSP http头消息
  5. 使用Java程序发送Email
  6. FPGA的JTAG下载问题
  7. Android NDK 【错误】The method loadLibrary(String) is undefined for the type Settings.Syste
  8. [R] Draw a wordcloud
  9. 一大波Java来袭(二)异常处理
  10. 使用dom4j对xml文件进行增删改查