关于一个简单缓存的问题

10-10-10 wbean
各位前辈大家好!我是一个学生,学习java 1年多了,两个多月前开始关注这个论坛的。

其中banq的关于建模,架构的独特见解让我思考了很多东西。今天晚上注册了一个帐号,第一次发帖问问题,还希望各位道友不吝赐教。

最近在写一个小的门户网站系统,没有数据库,所有的数据都是从子网站通过webservice读取的,第一次用缓存,所以有一些困惑。

由于网站更新量有限,1个小时调用一次webservice的方法读取数据就差不多了。

我把读取的数据都集中在一个hashmap中,希望每次有人访问门户页面的时候都从这个hashmap中读取数据。

这样hashmap应该是在内存中缓存的吧。但我不清楚该怎么实现了。- -~

我现在的做法是用单态模式生成了一个hashmap对象singletonCacheMap,这个对象是系统所有数据的来源(我觉得这样的对象只能有一个,不知道用单态模式对不对。)。然后我写了一个getDataMap方法,返回一个拷贝了singletonCacheMap对象中所有数据的新hashmap。jsp页面调用这个getDataMap方法获得返回的对象。

我遇到的问题是我该怎么处理这个singletonCacheMap对象?有人说放在session中,也有人说用static块来处理。

我写了一个方法可以给这个对象填充数据,但就是不知道该怎么怎样让它每隔一个小时刷新一次?各位道友你们平时都是怎么实现这个东西的?给提供个思路或者是例子吧。谢谢大家。

[该贴被wbean于2010-10-10 22:57修改过]

[该贴被wbean于2010-10-10 22:58修改过]

    

banq
2010-10-11 09:09
2010年10月10日 22:54 "wbean"的内容
有人说放在session中,也有人说用static块来处理 ...

如果是在Web应用中,两者都不对,应该是放在servletContext中,不过做好一个缓存不容易,而你的目标是门户,千万别转移目标,浪费时间精力,直接使用缓存组件就可以,这是Java的优势,比如ehcache,拿来就能用,就象Map一样使用。

asklxf
2010-10-11 15:56
我觉得你还是把基础概念搞清楚,比如Java的线程,J2EE服务器的响应模型,Servlet组件的模型,甚至是HTTP协议,不要指望从论坛能得到简单可行的方案。

wbean
2010-10-11 19:53
2010年10月11日 15:56 "asklxf"的内容
我觉得你还是把基础概念搞清楚,比如Java的线程,J2EE服务器的响应模型,Servlet组件的模型,甚至是HTTP协议,不要指望从论坛能得到简单可行的方案。 ...

恩,这位大哥说的很有对,我最近也感受到了自己的欠缺,一直在补这方面的知识。不过感觉这些方面的理解很难专项的去学习,只能在自己写的一个一个项目中去体会,有些摸不着头脑。大哥要是有什么好的方法也交流一下啊。谢谢。

wbean
2010-10-11 19:57
2010年10月11日 09:09 "banq"的内容
如果是在Web应用中,两者都不对,应该是放在servletContext中,不过做好一个缓存不容易,而你的目标是门户,千万别转移目标,浪费时间精力,直接使用缓存组件就可以,这是Java的优势,比如ehcache,拿来就能用,就象Map一样使 ...

谢谢banq大哥的指点,已经决定用缓存组件了。想自己试着弄个缓存就是想研究一下这方面的东西,不过还是觉得比较吃力,就像asklxf说的基础太差了。以后加油努力。

猜你喜欢