Ehcache(1)---了解Ehcache

写在开头:
之前在项目开发过程中一直在使用Ehcache技术作为缓存存储,这段时间又聊起了Ehcache,就想做个总结(分三篇),记录之前的使用过程,以及自己的理解,立个flag,便于后续查阅。

**1. Ehcache简介 **

EHCache是现在最流行的纯Java开源缓存框架,纯Java实现的简单、快速的Cache组件。EHCache支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分 布式的Cache,可以作为Hibernate的缓存插件。

(1)EhCache 的主要特性有:
a) 是在JVM虚拟机中缓存,所以快速;
b) 简单;
c)多种缓存策略;
d)缓存数据有两级:内存和磁盘,因此无需担心容量问题;
e)缓存数据会在虚拟机重启的过程中写入磁盘;
f)可以通过 RMI、可插入 API 等方式进行分布式缓存;
g) 具有缓存和缓存管理器的侦听接口;
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. Ehcache的结构设计概览
Ehcache(1)---了解Ehcache_第1张图片

4. Ehcache 的三种清空策略

(1) FIFO,first in first out,这个是大家最熟的,先进先出。
(2) LFU, Less Frequently Used,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用 的。缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。
(3) LRU,Least Recently Used,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又 需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将 被清出缓存。

你可能感兴趣的:(Java,Ehcache,java,缓存,ehcache)