一级缓存-其原理是:
在同一个Session里面,第一次调用get()方法, Hibernate先检索缓存中是否有该查找对象,发现没有,Hibernate发送SELECT语句到数据库中取出相应的对象,然后将该对象放入缓存中,
以便下次使用,第二次调用get()方法,Hibernate先检索缓存中是否有该查找对象,发现正好有该查找对象,就从缓存中取出来,不再去数据库中检索,没有再次发送select语句
二级缓存实现原理:(来源:一个session不能取另一个session中的缓存)
你可以把缓存看做是一个Map对象,它的Key用于存储对象OID,Value用于存储POJO。
首先,当我们使用Hibernate从数据库中查询出数据,获取检索的数据后,Hibernate将检索出来的对象的OID放入缓存中key中,
然后将具体的POJO放入value中,等待下一次再次向数据查询数据时,Hibernate根据你提供的OID先检索一级缓存,
若有且配置了二级缓存,则检索二级缓存,如果还没有则才向数据库发送SQL语句,然后将查询出来的对象放入缓存中。
适合存储到缓存中的数据:
访问频繁
改动不大
数量有限
不重要
一级缓存二级缓存的原理
最新推荐文章于 2024-07-22 14:15:06 发布