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的结构设计概览
在这里插入图片描述

4. Ehcache 的三种清空策略

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

发布了22 篇原创文章 · 获赞 35 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sinat_27431397/article/details/103564286
今日推荐