读书人

二级缓存的配备及什么数据入二级缓存以

发布时间: 2012-10-26 10:30:58 作者: rapoo

二级缓存的配置及什么数据入二级缓存以及查询缓存
hibernate二级缓存,属于sessionFactory的级别,是全局缓存,它的生命周期和sessionFactory一致

配置步骤:
1: 要使用二级缓存<property name="hibernate.cache.use_second_level_cache">true</property>

2:使用哪个缓存提供商<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

3:把对应的缓存提供商的配置文件拷贝src下

4:指定哪些类使用二级缓存
1:在hibernate.cfg.xml中配置 <class-cache usage="read-write" />
2:在类的配置文件中配置:<cache usage="nonstrict-read-write" />
推介用第一种方法,理由:方便管理

什么数据入二级缓存:
1:数据不能被第三方应用修改
2:数据量不能太大
3:数据的更新频率要比较低
4:数据应该是被频繁的查询的数据
5:非关键数据
6:参考数据
参考数据的特点:
1>他的实例的数目有限
2>它的每个实例都会被其他类的实例引用
3>它的实例极少或者从来不修改

以下数据不适合放到二级缓存中
1》经常被修改
2》财务数据,绝对不容许出现并发问题
3》其他应用共享的数据。因为如果其他应用修改了数据,hibernate无法保证二级缓存中的数据和数据库中的数据一致。


查询缓存:查询缓存必须依赖于二级缓存

1:配置<property name="hibernate.cache.use_query_cache">true</property>
2:query.setCacheable(true) ;
3:查询缓存和session无关

注意:删除尽量不要用createQuery("delete from Object") 因为不能做到同步
建议使用session的delete()方法 , delete后就变为临时状态了.

读书人网 >软件架构设计

热点推荐