二级缓存的相关概念
javaweb应用的缓存一般分两种:页面缓存和数据缓存。我们这里的缓存是指数据缓存。
数据缓存的作用:缓存位于程序和数据库之间,可减少程序访问数据库频率。
什么是Hibernate的二级缓存(与一级缓存对比)
Hibernate中提供了两个级别的缓存:
一级缓存是session级别的缓存,它是属于事务范围的缓存,生命周期是session的生命周期, (一个线程 绑定一个Session, 对应一份一级缓存, 一级缓存无法实现多用户之间数据共享),它是hibernate的内置缓存,由hibernate管理的,一般情况下无需进行干预.
二级缓存是sessionFactory 级别的缓存,它属于进程级别的缓存 (一个项目只会对应一个SessionFactory对象, sessionFactory缓存数据实现多用户之间共享),二级缓存是可插拔的。
二级缓存的并发策略
从概念上说:
read-write策略:缓存数据既能读也能写(比如”经常”更新的数据)
read-only策略:缓存数据只能读。(比如系统参数,地区的分类),并发效率高!
ehcache基本介绍
二级缓存的基本配置
第一步:导入ehcache的jar包(3个)
第二步:配置ehcache默认的核心配置文件ehcache.xml(名字固定)(放在类路径下)
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdl