关于缓存设计的问题!

数据库里有些比较固定的数据,想要实现,服务启动后将数据放入内存,JSP调用数据的时候从内存里取,不用再连数据库,请问该怎么实现???
谢谢!!!!

oscache

想自己做个简单的实现,大哥有没有例子,给一个我啊!!!!

测试

fdsgd

很简单啊,自己建一个类,里面放一个static的成员,第一次取数据的时候这个成员是NULL,因此调用SETTER方法把数据填进去,以后每次取数据的时候都从这个类的GETER方法里取!
一般来说这个STATIC成员使用HAHSMAP来存放数据,方便查找嘛!
如果你觉得以后还要用别的缓存可以再增加另一个STATIC成员。

个人感觉OSCACHE使用得到的地方不是很多,一般的项目种都觉得没必要用它,倒是上面这种情况用得比较多,而且这个方法跟OSCACHE相比能很大程度地减少代码量,同时也能够提高SQL语句的执行效率(不用写很多的关联子句去把代码相应的名称找出来)

这个类是用单态模式实现的吗??? 望回复,谢谢

如果有好几个类都来掉用这个类时怎么办???会不会有问题?

第一个问题:是的
第二个问题:当然没问题,STATIC这个关键词存在的意义就是让n多的类访问同一个变量!你说System.out用得多不多?有没有问题出现过?

加一点:只读的情况下,不需要做同步. 单线程情况下,不需要做同步.
多线程且可能同时发生读写一个变量的情况时需要做同步,即对这个变量的访问要同步.
我估计你要的数据可能是只读的,所以不需要缓存

可以考虑用doug的那个包里的concurrentHashMap等实现来存储cached的数据。这样对于那些比较少变动的数据性能会好一点。如果用的jdk1.5的话,也可以用jdk1.5新增加的类似于concurrentHashMap的实现来做。

当然不可能永远是只读的,只是修改这部分数据的操作极少发生。
而且又不需要象银行ATM机那样确保高安全的级别,所以不做同步也可以,系统不会有什么不稳定现象出现!

对使用concurrentHashMap的效率方面与普通HashMap有多少差距心里没底!