分享

更多

   

二级 ehcache

2011-04-02  曾今最强
    本文首先分析Hibernate的耳机缓存策略,讲解什么样的数据适合放到二级缓存中,然后通过代码实例详述Hibernate二级缓存的配置方法。

    (一)Hibernate的二级缓存策略的一般过程如下:

    1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。

    2) 把获得的所有数据对象根据ID放入到第二级缓存中。

    3) 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存。

    4) 删除、更新、增加数据的时候,同时更新缓存。

    Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,Hibernate提供了针对条件查询的Query Cache。

    (二)什么样的数据适合存放到第二级缓存中?

    1 很少被修改的数据

    2 不是很重要的数据,允许出现偶尔并发的数据

    3 不会被并发访问的数据

    4 参考数据,指的是供应用参考的常量数据,它的实例数目有限,它的实例会被许多其他类的实例引用,实例极少或者从来不会被修改。

    (三)不适合存放到第二级缓存的数据?

    1 经常被修改的数据

    2 财务数据,绝对不允许出现并发

    3 与其他应用共享的数据。

    实践部分:

    使用EhCache配置二级缓存

    配置准备:

    1)把ehcache-1.2.3.jar加入到当前应用的classpath中。

    2)在hibernate.cfg.xml文件中加入EhCache缓存插件的提供类。

            
    1. <!--配置缓存插件 -->   
    2. <property name="hibernate.cache.provider_class">   
    3.     org.hibernate.cache.EhCacheProvider   
    4. </property>  

    3)挎贝ehcache.xml文件到类