我做了一个SSH框架的管理系统,想让他运行时将数据库中的几个表全部读取出来,放到缓冲区里面,然后再查找缓冲区的数据加载到页面,我对数据只进行查找、更新操作。
现在问题怎么放入缓冲区,头疼啊???
都ssh了,用hibernate的 cache就好了。 hibernate可以将database中的数据都导出来缓存的。
如果不用第三方缓存
那么可以自己写个单列模式的类来缓存到VM中
现在我手边没IDE 不敢保证写出来的东西没错
所以只能给你说说思路
单列的缓存类
public MyCache{
private MyCache cache;
private static List cacheList;
private MyCache(){
cacheList = ...//初始化缓存数据
}
public synchronized MyCache instance(){
if(cache==null) cache = new MyCache();
return cache;
}
private List initList(){//DB初始化数据}
public List getCacheList(){
return cacheList;
}
....//其他获取缓存数据的方法
}
static修饰你要加载的数据
如 private static List userList;
补充下 那个获取实例的方法 应该static修饰
Memcached
不用框架的话用一个容器存吧!比如说Map
如果数据少的话就次性load出来吧,如果多的话可以考虑按命中率或者按时间,有点内存框架的影子了。因为你有只有更亲,只要更新数据库的时候顺便更新缓存就行。
代码自己看着办吧,慢慢优化完善,这个过程你大概就知道内存框架的基本原理了。
lucene
你是想找个内存数据库么,推荐一个Berkeley DB