您的位置:首页 > 其它

Hibernate——缓存+如何配置二级缓存

2015-12-15 11:28 204 查看

一、什么是缓存

一般来说,我们每次访问的数据是从数据库中查出来的,但是会有这样的情况,多个用户会对一张表进行反复的访问和操作,这样每次都去从数据库中查询相同的数据,很大程度上降低了效率,为了避免这种情况发生,出现了缓存,缓存就是把以前从数据库查询出来和使用过的对象保存在内存中,这个数据结构通常是类似HashMap,当以后使用某个对象的时候,先查询缓存中是或否有这个对象,如果有则使用缓存中的对象,如果没有,则去查询数据库,并将查询出来的对象保存在缓存中,以便下次使用。

二、一级缓存和二级缓存

一般来说,我们将从数据库取出的数据存储到session中,每个session,对同一个id进行两次load,不会发送给sql数据库,但是session关闭的时候,一级缓存就失效了。二级缓就是全局缓存。

缓存可以简单看出一个map,通过key在缓存里找value。

引用代码,分析cache的实现原理

<span style="font-family:KaiTi_GB2312;font-size:18px;">Dao

{

hashmap map = new map();

User getUser(integer id)

{

User user = map.get(id)

if(user == null)

{

user = session.get(id);

map.put(id,user);

}

return user;

}

}

 

Dao

{

Cache cache = null

setCache(Cache cache)

{

this.cache = cache

}

 

User getUser(int id)

{

if(cache!=null)

{

User user = cache.get(id);

if(user ==null)

{

user = session.get(id);

cache.put(id,user);

}

return user;

}

 

return session.get(id);

}

}
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: