Ehcache学习笔记——初识Ehcache

1. Ehcache 的主要特性和集群方案java

EHCache EHCache 是一个纯 java 的在进程中的缓存,是 Hibernate 中默认的 CacheProvider,最小的依赖性, 全面的文档和测试,最新版本为 2.0.1。 缓存应用在多个领域并发挥做用,ehcache 可应用于数据库访问缓存,安全认证缓存,web 缓存,soap 和 RESTFul 服务缓存,应用程序持久对象缓存以及分布式缓存。web

(1)EhCache 的主要特性有:数据库

a) 快速; b) 简单; c)多种缓存策略;缓存

d)缓存数据有两级:内存和磁盘,所以无需担忧容量问题;安全

e)缓存数据会在虚拟机重启的过程当中写入磁盘;并发

f)能够经过 RMI、可插入 API 等方式进行分布式缓存; 分布式

g) 具备缓存和缓存管理器的侦听接口;ide

h) 支持多缓存管理器实例,以及一个实例的多个缓存区域;函数

i) 提供 Hibernate 的缓存实现;测试

(2)EhCache 从 1.7 版本后,支持五种集群方案,分别是: a) Terracotta  b)RMI  c)JMS  d)JGroups  e)EhCache Server

2. Ehcache 的层次模型

Ehcache 的类层次模型主要为三层,最上层的是 CacheManager,他是操做 Ehcache 的入 口。咱们能够经过 CacheManager.getInstance()得到一个单子的 CacheManger,或者通 过 CacheManger 的构造函数建立 一个新的 CacheManger。 每一个 CacheManager 都管理着多个 Cache。而每一个 Cache 都以一种类 Hash 的方式,关联着 多个 Element。 Element(键值对)则是咱们用于存放要缓存内容的地方。

3. Hibernate 的二级缓存策略

Hibernate 的二级缓存策略的通常过程以下 :

1)条件查询的时候,老是发出一条 select * from table_name where .... (选择全部字段)这样的 SQL 语句查询数据库,一次得到全部的数据对象。

2) 把得到的全部数据对象根据 ID 放入到第二级缓存中。

3)当 Hibernate 根据 ID 访问数据对象的时候,首先从 Session 一级缓存中查;查不到, 若是配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照 ID 放 入到缓存。

4 )删除、更新、增长数据的时候,同时更新缓存。 Hibernate 的二级缓存策略,是针对于 ID 查询的缓存策略,对于条件查询则毫无做用。 为此,Hi bernate 提供了针对条件查询的 Query Cache。

4. Ehcache 的三种清空策略

(1) FIFO,first in first out,这个是你们最熟的,先进先出。

(2) LFU, Less Frequently Used,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用 的。缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。

(3) LRU,Least Recently Used,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又 须要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将 被清出缓存。

相关文章
相关标签/搜索