ehcache使用

深入理解Ehcache系列(五)

白昼怎懂夜的黑 提交于 2019-12-10 15:49:46
Ehcache中可以使用Cache来保存需要缓存的对像,但需要把对象封装在Element的实例里。 往Cache中添加对像: CacheManager manager = CacheManager.newInstance("src/config/cache.xml"); manager.addCache("testCache"); Cache cache = singletonManager.getCache("testCache"); Element element = new Element("key", "value"); cache.put(element); 相应源码: /** * Put an element in the cache. * <p/> * Resets the access statistics on the element, which would be the case if it has previously been * gotten from a cache, and is now being put back. * <p/> * Also notifies the CacheEventListener that: * <ul> * <li>the element was put, but only if the Element was

Spring Boot2 系列教程(三十)Spring Boot 整合 Ehcache

╄→гoц情女王★ 提交于 2019-12-10 12:06:23
用惯了 Redis ,很多人已经忘记了还有另一个缓存方案 Ehcache ,是的,在 Redis 一统江湖的时代,Ehcache 渐渐有点没落了,不过,我们还是有必要了解下 Ehcache ,在有的场景下,我们还是会用到 Ehcache。 今天松哥就来和大家聊聊 Spring Boot 中使用 Ehcache 的情况。相信看完本文,大家对于[ Spring Boot2 系列教程(二十六)Spring Boot 整合 Redis ]一文中的第二种方案会有更加深刻的理解。 Ehcache 也是 Java 领域比较优秀的缓存方案之一,Ehcache 这个缓存的名字很有意思,正着念反着念,都是 Ehcache,Spring Boot 中对此也提供了很好的支持,这个支持主要是通过 Spring Cache 来实现的。 Spring Cache 可以整合 Redis,当然也可以整合 Ehcache,两种缓存方案的整合还是比较相似,主要是配置的差异,具体的用法是一模一样的,就类似于 JDBC 和 数据库驱动的关系一样。前面配置完成后,后面具体使用的 API 都是一样的。 和 Spring Cache + Redis 相比,Spring Cache + Ehcache 主要是配置有所差异,具体的用法是一模一样的。我们来看下使用步骤。 项目创建 首先,来创建一个 Spring Boot 项目,引入

MyBatis-13-缓存

非 Y 不嫁゛ 提交于 2019-12-09 18:32:20
13、缓存(了解) 13.1、简介 查询 : 连接数据库,耗资源! 一次查询的结果,给他暂存在一个可以直接取到的地方!--->内存 : 缓存 我们再次查询相同数据的时候,直接走缓存,就不用走数据库了 什么是缓存[Cache]? 存在内存中的临时数据。 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询, 从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。 为什么使用缓存? 减少和数据库的交互次数,减少系统开销,提高系统效率。 什么样的数据能使用缓存? 经常查询并且不经常改变的数据。 13.2、Mybatis缓存 MyBatis包含一个非常强大的查询缓存特性,它可以非常方便地定制和配置缓存。缓存可以极大的提升查询效率。 MyBatis系统中默认定义了两级缓存: 一级缓存 和 二级缓存 默认情况下,只有一级缓存开启。(SqlSession级别的缓存,也称为本地缓存) 二级缓存需要手动开启和配置,他是基于namespace级别的缓存。 为了提扩展性,MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存 13.3、 一级缓存也叫本地缓存:SqlSession 与数据库同义词会话期间查询到的数据会放在本地缓存中。 以后如果需要获取相同的数据,直接从缓存中拿,没有必要再去查询数据; 测试步骤: 开启日志!

关于ehcache缓存中eternal及timeToLiveSeconds和timeToIdleSeconds的说明

江枫思渺然 提交于 2019-12-05 23:13:47
一.简介 在spring的modules包中提供对许多第三方缓存方案的支持,包括: EHCache OSCache(OpenSymphony) JCS GigaSpaces JBoss Cache 等等。 将这些第三方缓存方案配置在spring中很简单, 今天发现开发项目启动时有警告提示:cache 'xx' is set to eternal but also has TTL/TTI set,发现是ehcache缓存设置冲突 所以决定在此mark一下,加深记忆, 具体如下 : timeToLiveSeconds : 缓存自创建之时起至失效时的间隔时间单位为秒,默认为0,代表无限长,即缓存永不过期; timeToIdleSeconds : 缓存创建以后,最后一次访问缓存之时至失效之时的时间间隔,单位为秒,默认为0,永不过期; eternal : 缓存是否永久有效(true/false) 当你配置了eternal属性为true时,如果同时配置timeToLiveSeconds/timeToIdleSeconds不为0,则程序就会报以上警告 下面说说他们之间的关系: eternal不多说,true表示缓存永久有效,false表示不为永久有效 主要是timeToLiveSeconds 和timeToIdleSeconds 之间的使用(单独配置时,以上已说明) 举例说明

Ehcache(06)——监听器

折月煮酒 提交于 2019-12-05 22:53:38
https://www.iteye.com/blog/elim-2119353 监听器 Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。在Ehcache中,Listener是通过对应的监听器工厂来生产和发生作用的。下面我们将来介绍一下这两种类型的监听器。 1 CacheManager监听器 Ehcache中定义了一个CacheManagerEventListener接口来监听CacheManager的事件。CacheManagerEventListener可以监听的事件有CacheManager添加和移除Cache。其中定义有如下五个方法: Java代码 public interface CacheManagerEventListener { void init() throws CacheException; Status getStatus(); void dispose() throws CacheException; void notifyCacheAdded(String cacheName); void notifyCacheRemoved(String cacheName); } l init

Ehcache(01)——简介、基本操作

回眸只為那壹抹淺笑 提交于 2019-12-05 22:53:07
转发地址: https://www.iteye.com/blog/elim-2112170 Ehcache 简介 目录 1 CacheManager 1.1 构造方法构建 1.2 静态方法构建 2 Cache 2.1 Cache的创建 Ehcache是用来管理缓存的一个工具,其缓存的数据可以是存放在内存里面的,也可以是存放在硬盘上的。其核心是CacheManager,一切Ehcache的应用都是从CacheManager开始的。它是用来管理Cache(缓存)的,一个应用可以有多个CacheManager,而一个CacheManager下又可以有多个Cache。Cache内部保存的是一个个的Element,而一个Element中保存的是一个key和value的配对,相当于Map里面的一个Entry。 1 CacheManager CacheManager是Ehcache的核心,它的主要职责是对Cache的创建、移除和访问。只有CacheManager里面的Cache才能实现缓存数据的功能。一切使用Ehcache的应用都是从构建CacheManager开始的。构建CacheManager时,我们可以直接通过其构造方法来进行构建,也可以通过使用CacheManager提供的静态方法来进行构建。 1.1 构造方法构建

Ehcache(02)——ehcache.xml简介

半城伤御伤魂 提交于 2019-12-05 22:52:40
转发地址: https://www.iteye.com/blog/elim-2113728 ehcache.xml 简介 ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信息参数创建CacheManager时,CacheManager将首先在类路径的根目录下寻找一个叫ehcache.xml的文件作为CacheManager的配置文件。如果不存在这样的文件则将使用封装在ehcache jar包中的ehcahce-failsafe.xml文件作为创建CacheManager的默认配置信息。除了使用Configuration作为参数外,使用其它参数构造CacheManager都是基于xml格式的配置信息的。当我们使用xml配置文件作为CacheManager的配置信息时,我们的文件名不一定叫ehcache.xml,这里只是把ehcache.xml文件作为这一类文件的一个代表,它们拥有共同的文档结构。本文将对ehcache.xml做一个简要的介绍,主要介绍常用的配置项。 1 ehcache元素 首先我们的ehcache.xml文件必须遵守Ehcache的Xml

Ehcache(04)——设置缓存的大小

眉间皱痕 提交于 2019-12-05 22:52:14
转发地址: https://www.iteye.com/blog/elim-2116749 设置缓存的大小 目录 1 CacheManager级别 2 Cache级别 3 大小衡量 4 配置大小示例 缓存大小的限制可以设置在CacheManager上,也可以设置在单个的Cache上。我们可以设置缓存使用内存的大小,也可以设置缓存使用磁盘的大小,但是使用堆内存的大小是必须设置的,其它可设可不设,默认不设就是无限制。在设置缓存大小的时候,我们可以设置缓存使用某一个存储器的最大字节数,也可以设置缓存在某一个存储器上最多存放元素的数量。 1 CacheManager级别 CacheManager级别有三个属性可以分别用来限制三种存储器缓存信息的大小,其控制的都是字节数,分别是maxBytesLocalHeap、maxBytesLocalOffHeap和maxBytesLocalDisk。CacheManager级别限制的大小是其内所有的Cache共享的。 maxBytesLocalHeap 是用来限制缓存所能使用的堆内存的最大字节数的,其单位可以是K、M或G,不区分大小写。默认是0,表示不限制。但是当我们没有指定CacheManager级别的maxBytesLocalHeap时,我们必须在每一个Cache上指定maxBytesLocalHeap或maxEntriesLocalHeap。

spring mvc使用spring ehcache緩存

余生颓废 提交于 2019-12-03 21:44:50
ehcache配置文件: <?xml version="1.0" encoding="UTF-8"?> <!-- /** * * 緩存配置 * @author zyz ehcache配置文件: <?xml version="1.0" encoding="UTF-8"?> <!-- /** * * 緩存配置 * @author zyz * @date 2013年7月2日 * */ --> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="3000" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="true" diskPersistent="false" diskExpiryThreadIntervalSeconds="100" memoryStoreEvictionPolicy="LRU" /> <cache name=

Mybatis中的缓存管理

核能气质少年 提交于 2019-12-03 11:12:04
目录 Mybatis中的缓存管理 查询缓存工作原理: 配置缓存: 默认配置: 使用二级缓存: 刷新缓存过程: 配置EHcache 产生脏数据 使用原则: Mybatis中的缓存管理 查询缓存工作原理: 查询语句 <---> 缓存 <----> DB 缓存内容: Mybatis中存放的是查询的内容; 缓存对比: 类别 作用范围 生命周期 一级缓存 namespace 和sqlsession的生存周期相同 二级缓存 namespace 和整个应用的生命周期相同 一级缓存:默认是开启的,无开关关闭; 二级缓存:默认是开启的,需要手动关闭,二级缓存可以外置第三方的产品。 配置缓存: 默认配置: 一级缓存默认是开启的,无需配置,也不能关闭; 二级缓存也是默认开启状态的,如果想要关闭的话在“全局配置文件”中配置;全局关闭之后后面的配置也就不起作用了; <configuration> <!--二级缓存的全局开关--> <settings> <setting name="cacheEnabled" value="false"/> </settings> </configuration> 局部关闭设置: <!--在查询语句里添加设置:useCache="false"--> <select id="selectStudentById2" resultType="Student" useCache=