Ehcache(2)

2024-08-30 10:08
文章标签 ehcache

本文主要是介绍Ehcache(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

二.配置文件ehcache.xml

    首先,我们需要一个配置文件ehcache.xml(名字可以改变),主要内容如下
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"></ehcache>
    这是根节点的两个标签,我们配置的内容在这里面,主要介绍一下几个常用标签

    1.diskStore

        指定磁盘的存储路径

    2.defaultCache

        默认的cache配置,如果创建了一个没有指定属性的cache,那么将默认继承该配置

    3.cache

        cache的配置,在其中指定这个cache的属性
    
    标签下有这些属性,
    maxElementsInMemory:缓存最大的元素个数
    eternal:默认为false,如果为true,则忽略timeToIdleSeconds和timeToLiveSeconds,cache中的元素不会过期
    timeToIdleSeconds:表示一个元素所允许闲置的最大时间,也就是说一个元素在不被请求的情况下允许在缓存中待的最大时间。默认是0,表示不限制
    timeToLiveSeconds:单位是秒,表示无论一个元素闲置与否,其允许在Cache中存在的最大时间。默认是0,表示不限制
    overflowToDisk:默认为false,当内存里面的缓存已经达到预设的上限时是否允许将按驱除策略驱除的元素保存在磁盘上了,如果为false则表示元素不会到磁盘盘上,只会在内存中
    maxElementsOnDisk:磁盘中最大的元素数量
    diskExpiryThreadIntervalSeconds: 单位是秒,表示多久检查元素是否过期的线程多久运行一次,默认是 120
    memoryStoreEvictionPolicy:采用的驱除策略
    copyOnWrite:默认为false。当设置为true时,读入缓存中的是该对象的一个备份
    copyOnRead:默认为false。当设置为true时,从缓存中取出的时候是缓存中对象的一个备份

    下面写个程序说明一下copyOnWrite和copyOnRead
		CacheManager cm = new CacheManager();Cache c1 = cm.getCache("cache1");// cache1的copyOnRead为true,copyOnWrite为trueElement e1 = new Element("e1", new Integer(1));c1.put(e1);// 根据copyOnWrite,放入缓存中的是e1的拷贝对象Element e11 = c1.get("e1");System.out.println(e1 == e11);// falseCache c2 = cm.getCache("cache2");// cache2的copyOnRead为true,copyOnWrite为falseElement e2 = new Element("e2", new Integer(1));c2.put(e2);// 根据copyOnRead,从缓存中取出的是内存中对象拷贝对象Element e22 = c2.get("e2");System.out.println(e2 == e22);// falseCache c3 = cm.getCache("cache3");// cache2的copyOnRead为false,copyOnWrite为trueElement e3 = new Element("e3", new Integer(1));c3.put(e3);// 根据copyOnWrite,放入缓存中的是e1的拷贝对象Element e33 = c2.get("e3");System.out.println(e3 == e33);// false



这篇关于Ehcache(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120513

相关文章

Ehcache(1)

Ehcache是一个Java的缓存框架,当应用需要使用到缓存的时候,可以使用,它的操作也方便,下面介绍一下它的用法 一.CacheManager     1.配置文件         首先在src下面放一个ehcache.xml文件,内容如下 <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta

SpringBoot进阶篇4:Spring Boot中EhCache应用

1、SpringBoot Cache       Spring Boot 本身提供了一个基于ConcurrentHashMap 的缓存机制,也集成了EhCache2.x、JCache CJSR-107、EhCache3.x、Infinispan ),还有Couchbase、Redis 等。Spring Boot应用通过注解的方式使用统一的缓存,只需在方法上使用缓存注解即可。 【注意】在Spri

spring+ehcache 缓存

1.在web.xml中添加 <context-param>     <param-name>contextConfigLocation</param-name>     <param-value>classpath:resources/application.xml</param-value>   </context-param> 2.在application.xml中添加 <?xml ve

spring集成redis(ehcache缓存改成redis)

1.先准备要需要的四个和redis相关的jar包 commons-pool2-2.4.2.jar、jedis-2.9.0.jar、spring-data-redis-1.8.16.RELEASE.jar、spring-data-commons-1.13.16.RELEASE.jar 把这个三个jar引进项目里 2.增加一个redis.propertes #redis的服务器地址red

Ehcache Java 缓存框架

详解 下图是 Ehcache 在应用程序中的位置: Ecache 是一个广泛使用的 Java 缓存框架,能够有效提升应用性能,并减少与后端数据库的交互次数。它采用了一系列高级缓存策略,包括内存缓存、磁盘缓存、分布式缓存等,并提供了丰富的 API 和工具类,可以方便地完成缓存的读写和管理。快速:Ecache 采用了一系列高效的缓存策略,能够实现快速的数据访问和读写,从而提高应用程

Mybatis与ehcache缓存框架整合

1 分布式缓存 目的:将缓存数据进行分布式的管理作用:通过mybatis和ehcache整合,可以把缓存数据的管理托管ehcache在mybatis中提供一个cache接口,只要实现cache接口就可以把缓存数据灵活的管理起来。 2 整合步骤  下载jar包  配置ehcache.xml <ehcache xmlns:xsi="http://www.w3.org/200

关于EHcache缓存

1、简介 非常简单,而且易用。     ehcache 是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,而且是hibernate 默认的缓存provider。ehcache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 ehcache可以直接使用。也可以和Hibernate对象/关系框架结合使用。还可以做S

springboot 整合EHcache 实现缓存技术

一 ehcache的概述 1.@Cacheable注解的作用 @Cacheable 对当前的对象做缓存处理 @Cacheablepublic List<Users> findUserAll() {return this.userRepository.findAll();}@Cacheable 作用:把方法的返回值添加到 Ehcache 中做缓存 Value 属性:指定一个 Ehcache

springboot的ehcache的@CacheEvict清除缓存

一 @CacheEvict的作用 1.1 总体概述     @CacheEvict是用来标注在需要清除缓存元素的方法或类上的。 当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作。 @CacheEvict可以指定的属性有value、key、condition、allEntries和beforeInvocation。其中value、key和condition的语义与@Cache

解决springboot中@ehcache不起作用的问题

一 问题描述 问题描述前,请允许我,吐槽一下,这个问题困扰了一天,下面在业务层下的代码中,@cache注解标注了value的名称,但是没有设置key,且传递的参数为 CrawlRecordParamVo crawlRecordParamVo ,是一个对象,每次调用都要查询一次数据库,没有启动缓存的作用 原因在于没有制定key,因为:对于使用@Cacheable标注的方法,Spring在每