首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-10-26 
二级缓存的配置及什么数据入二级缓存以及查询缓存hibernate二级缓存,属于sessionFactory的级别,是全局缓存

二级缓存的配置及什么数据入二级缓存以及查询缓存
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后就变为临时状态了.

热点排行