SpringBoot-Cache 集合 EhCache

标签: 缓存
2人阅读 评论(0) 收藏 举报
分类:

<!-- 缓存 -->
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
</dependency>

ehcache.xml

<ehcache>
    <!-- 指定一个文件目录,当EHCache把数据写到硬盘上时,将把数据写到这个文件目录下 -->
    <diskStore path="java.io.tmpdir"/>

    <!-- 设定缓存的默认数据过期策略 -->
    
    <cache name="person" maxElementsInMemory="10000" />
 
    
    <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            overflowToDisk="true"
            timeToIdleSeconds="10"
            timeToLiveSeconds="120"
            diskPersistent="false"
            memoryStoreEvictionPolicy="LRU"
            diskExpiryThreadIntervalSeconds="120"/>

    <!-- maxElementsInMemory 内存中最大缓存对象数,看着自己的heap大小来搞 -->
    <!-- eternal:true表示对象永不过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false -->
    <!-- maxElementsOnDisk:硬盘中最大缓存对象数,若是0表示无穷大 -->
    <!-- overflowToDisk:true表示当内存缓存的对象数目达到了maxElementsInMemory界限后,
    会把溢出的对象写到硬盘缓存中。注意:如果缓存的对象要写入到硬盘中的话,则该对象必须实现了Serializable接口才行。-->
    <!-- diskSpoolBufferSizeMB:磁盘缓存区大小,默认为30MB。每个Cache都应该有自己的一个缓存区。-->
    <!-- diskPersistent:是否缓存虚拟机重启期数据  -->
    <!-- diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认为120秒 -->

    <!-- timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为单位。当对象自从最近一次被访问后,
    如果处于空闲状态的时间超过了timeToIdleSeconds属性值,这个对象就会过期,
    EHCache将把它从缓存中清空。只有当eternal属性为false,该属性才有效。如果该属性值为0,
    则表示对象可以无限期地处于空闲状态 -->

    <!-- timeToLiveSeconds:设定对象允许存在于缓存中的最长时间,以秒为单位。当对象自从被存放到缓存中后,
    如果处于缓存中的时间超过了 timeToLiveSeconds属性值,这个对象就会过期,
    EHCache将把它从缓存中清除。只有当eternal属性为false,该属性才有效。如果该属性值为0,
    则表示对象可以无限期地存在于缓存中。timeToLiveSeconds必须大于timeToIdleSeconds属性,才有意义 -->

    <!-- memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,
    Ehcache将会根据指定的策略去清理内存。可选策略有:LRU(最近最少使用,默认策略)、
    FIFO(先进先出)、LFU(最少访问次数)。-->

</ehcache>

application.properties:
spring.cache.type=ehcache
spring.cache.ehcache.config=ehcache.xml

在配置类配置@EnableCaching
@SpringBootApplication(exclude = MybatisAutoConfiguration.class)
@EnableCaching
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
管理设置
@Configuration
public class CacheConfiguration {
    @Bean(name = "appEhCacheCacheManager")
    public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean bean){
    	System.out.println("-------启动ehche-----");
        return new EhCacheCacheManager(bean.getObject());
    }
    @Bean
    public EhCacheManagerFactoryBean ehCacheManagerFactoryBean(){
        EhCacheManagerFactoryBean cacheManagerFactoryBean = new EhCacheManagerFactoryBean ();
        cacheManagerFactoryBean.setConfigLocation(new ClassPathResource ("ehcache.xml"));
        cacheManagerFactoryBean.setShared(true);
        return cacheManagerFactoryBean;
    }
}
测试
    @Cacheable(value = "person",key="#person.age")
    public Person getPerson(Person person) {
        Person p = personMapper.getPerson(person);
        return p;
    }
OK
查看评论

SpringBoot系列(7)---SpringBoot-Cache(EhCache)

SpringBoot提供数据缓存的功能,相信非常多人已经用过cache了。因为数据库的IO瓶颈应该大家也吃过不少亏了,所以一般情况下我们都会引入非常多的缓存策略,例如引入redis,引入hiberna...
  • tony308001970
  • tony308001970
  • 2017-07-12 12:40:43
  • 3136

Hibernate缓存-使用Ehcache让实体对象集合对象缓存

考虑到效率和对数据库的压力,使用缓存或者内存缓存,可以提高反应速度和减轻数据库压力。hibernate中支持的比较多,在hibernate给的文档“提升性能”章节有详细介绍: hiber...
  • wocaonima123987
  • wocaonima123987
  • 2012-08-23 16:06:02
  • 835

缓存技术之Ehcache(5)对象缓存

ssfsd8
  • oh_Mourinho
  • oh_Mourinho
  • 2016-08-03 10:13:03
  • 2183

ehcache 缓存使用

一:详细配置步骤      1,添加ehcache.xml文件       将ehcache.xml文件添加到src路径下面。ehcache.xml文件内容如下 ...
  • lishuangzhe7047
  • lishuangzhe7047
  • 2014-12-02 17:20:02
  • 41862

Ehcache对并发的支持

Ehcache对并发的支持          在高并发的情况下,使用Ehcache缓存时,由于并发的读与写,我们读的数据有可能是错误的,我们写的数据也有可能意外的被覆盖。所幸的是Ehcache为我...
  • u014236541
  • u014236541
  • 2015-12-01 11:01:38
  • 2031

自定义ehcache的key

今天在项目中用到了ehcache缓存,将list缓存到ehcache中,但是又存在分页问题,会传入Page类,默认的key命名方式失效,网上资料比较少,总结代码贴上来。   spring整...
  • liumingxuxu
  • liumingxuxu
  • 2017-04-14 14:25:18
  • 1172

hello Ehcache(Ehcache3.0)

Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。Ehcache 3.0是一个里程碑式的版本; 这个新的主要版本的Eh...
  • liaodehong
  • liaodehong
  • 2016-06-28 13:29:00
  • 4973

ehcache结构

  • 2011年09月22日 10:59
  • 85KB
  • 下载

ehcache页面缓存技术

  • 2017年09月08日 09:54
  • 2.05MB
  • 下载

ehcache 专业教程

  • 2010年04月22日 11:03
  • 58KB
  • 下载
    个人资料
    等级:
    访问量: 48
    积分: 50
    排名: 179万+
    文章存档