如何通过2级缓存解决性能问题(ehcache)

实际使用中,发现pharos底层的table_info表和users表的读操作过于频繁,因此为它们增加二级缓存,以提高性能
0.首先修改hibernate.properties文件,
增加
hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider
hibernate.cache.use_query_cache=true

1.修改endbran/src/java/ehcache.xml,增加如下内容:
    <cache name="com.vtradex.endbrain.model.TableInfo"
        maxElementsInMemory="1000"
        eternal="true"
        timeToIdleSeconds="86400"
        timeToLiveSeconds="86400"
        overflowToDisk="true"
        />
    <cache name="com.vtradex.endbrain.model.TableInfo.excludedColumns"
        maxElementsInMemory="1000"
        eternal="true"
        timeToIdleSeconds="86400"
        timeToLiveSeconds="86400"
        overflowToDisk="true"
        />

    <cache name="com.vtradex.bedrock.model.security.User"
        maxElementsInMemory="1000"
        eternal="true"
        timeToIdleSeconds="86400"
        timeToLiveSeconds="86400"
        overflowToDisk="true"
        />
    <cache name="com.vtradex.bedrock.model.security.User.roles"
        maxElementsInMemory="1000"
        eternal="true"
        timeToIdleSeconds="86400"
        timeToLiveSeconds="86400"
        overflowToDisk="true"
        />
    <cache name="com.vtradex.bedrock.model.security.User.groups"
        maxElementsInMemory="1000"
        eternal="true"
        timeToIdleSeconds="86400"
        timeToLiveSeconds="86400"
        overflowToDisk="true"
        />
    <cache name="com.vtradex.bedrock.model.security.User.authorizations"
        maxElementsInMemory="1000"
        eternal="true"
        timeToIdleSeconds="86400"
        timeToLiveSeconds="86400"
        overflowToDisk="true"
        />

2.修改com/vtradex/endbrain/dao/hibernate/tableInfo.hbm.xml
2.1在class定义下加入
<cache usage="nonstrict-read-write"/>
2.2在<set name="excludedColumns" table="TABLE_COLUMN">
下加入
         <cache usage="read-write"/>
3.修改com.vtradex.endbrain.dao.hibernate.HibernateTableInfoDao
在getTableInfoByIdentity方法和getTableInfosByPage方法中
增加
setCacheable(true)
setCacheRegion("com.vtradex.endbrain.model.TableInfo")

4.修改com/vradex/bedrock/dao/security/hibernate/user.hbm.xml
4.1在class定义下加入
<cache usage="nonstrict-read-write"/>
4.2在        <set name="roles" table="USER_ROLE" lazy="true" cascade="save-update">
        <set name="groups" table="GROUP_USER" lazy="true" inverse="true">
        <set name="authorizations" table="USER_AUTHORIZATION" lazy="true" inverse="true" cascade="all-delete-orphan">
下分别加入
         <cache usage="read-write"/>
5.修改com.vtradex.bedrock.dao.security.hibernate.HibernateUserDao
在getUserByLoginName方法中
增加
setCacheable(true)
setCacheRegion("com.vtradex.bedrock.model.security.User")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值