自己写的一个cache小组件

Cache作为提高性能的有效手段可以说是无处不在的。CPU有一级缓存,二级缓存;数据库有自己的数据缓存;内存实质上就是硬盘的缓存。。。。。。而程序中的缓存也能够有效的减少与存储设备的交互,增加应用的并发能力。

我通过在实际项目中自行设计和使用cache,逐渐提高了系统的并发能力,但同时也感觉到了很多的不足:

1.       因为是在原有系统基础上优化,cache的处理没有统一的规划,而是头痛医头,脚痛医脚。cache分散在系统各个模块,很难想起哪些模块使用了cache

2.       cache的实现各种各样,有的是单例、有的是static对象,而cache对象与数据库的交互也是直接硬编码在原有系统中,难于维护

3.       cache的参数如刷新间隔。。。。。。未使用配置文件,而是直接定义在cache的类文件中,对配置的更改就需要更新整个类,进而影响系统的运行

4.       缺少对cache的监控机制和log机制,出现问题很难去跟踪和解决。

经过一段时间具体项目的洗礼,对java也有了进一步的认识,我也可以有能力来解决一直困扰心中的cache的这些问题了。想法很简单,就是能够通过单一的配置文件,对系统中的所有cache进行统一的管理,各个cache所在的模块,和cache的配置参数,都能够一目了然。而对配置文件的重载功能也是我要考虑的问题,希望对某些cache的配置的更改能够对其它cache无影响,同时这些更改也能在不影响应用运行状态的情况下进行。当然既然是统一管理,就需要做到接口的统一。我定义了CacheCachePersistence两个接口,然后不同的cache可以提供不同的实现,实现类需要在配置文件中指定,同时系统提供默认的实现,以满足简单的应用。想了就要开始做,我也没想一开始就做出象OSCacheJbossCache那样通用的cache来,也许经过不断的交流,不断的完善最终可以做到。经过简单的设计,我就开始写代码了,就我一个人,也算是XP编程了,呵呵!cache的配置参数,我根据项目经验想到了几个,可能还可以有,但目前我不知道,需要在更多的项目应用中去发现,具体可以看我的包中的cache.xml文件,有对配置项的具体说明。

从开始开发到最后写完测试类,也就不到一个星期的时间(上班的空余时间和加班写),当中也进行了几次重构。总的来说,还算满意,这也算俺的第一个开源项目啊,呵呵!

具体如何使用,很简单,你有兴趣可以实现Cache接口,我内置了基于HashMapCache,应该能满足大部分应用的需要。CachePersistence就是你的对象与存储设备交互的实现了,你一般需要实现这一接口,然后配置在配置文件中。然后通过CacheFactory得到Cache,通过Cache接口使用对象。对Cache的操作你可以当成一个Map来使用,由容器来自动处理何时与存储设备的交互,你只要配置好就ok了。另外可以参考src中的test包,里面是我对Cache的功能测试代码,也能作为使用cache的实例的。

说了这么多,大家如果有兴趣,可下载我的全部文件,里面包括jarsrclibjavadoc还有配置文件,点击这里http://www.blogjava.net/Files/pesome/pcache.zip。更欢迎大家在实际的项目中使用我的cache,如果有任何问题都可以跟我联系,mailto:pesome@163.com。谢谢!<o:p></o:p>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值