ehcache 默认大小_ehcache详解.pdf

ehcache详解

ehcache 详解

Ehcache 是现在最流行的纯 Java 开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从 Hibernate 的缓

存开始的。网上中文的 EhCache 材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行 google ;对于API ,官

网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和

分析 EhCache 的特性,加上一些自己的理解和思考,希望对缓存感兴趣的朋友有所收获。

一、特性一览 ,来自官网,简单翻译一下:

1、快速轻量

过去几年,诸多测试表明 Ehcache 是最快的 Java 缓存之一。

Ehcache 的线程机制是为大型高并发系统设计的。

大量性能测试用例保证 Ehcache 在不同版本间性能表现得一致性。

很多用户都不知道他们正在用 Ehcache ,因为不需要什么特别的配置。

API 易于使用,这就很容易部署上线和运行。

很小的jar 包,Ehcache 2.2.3 才 668kb。

最小的依赖:唯一的依赖就是 SLF4J 了。

2、伸缩性

缓存在内存和磁盘存储可以伸缩到数 G ,Ehcache 为大数据存储做过优化。

大内存的情况下,所有进程可以支持数百 G 的吞吐。

为高并发和大型多 CPU 服务器做优化。

线程安全和性能总是一对矛盾,Ehcache 的线程机制设计采用了 Doug Lea 的想法来获得较高的性能。

单台虚拟机上支持多缓存管理器。

通过 Terracotta 服务器矩阵,可以伸缩到数百个节点。

3、灵活性

Ehcache 1.2 具备对象 API 接口和可序列化 API 接口。

不能序列化的对象可以使用除磁盘存储外 Ehcache 的所有功能。

除了元素的返回方法以外,API 都是统一的。只有这两个方法不一致:getObjectValue 和 getKeyValue。这就使得缓存对

象、序列化对象来获取新的特性这个过程很简单。

支持基于 Cache 和基于 Element 的过期策略,每个 Cache 的存活时间都是可以设置和控制的。

提供了 LRU、LFU 和 FIFO 缓存淘汰算法,Ehcache 1.2 引入了最少使用和先进先出缓存淘汰算法,构成了完整的缓存淘汰

算法。

提供内存和磁盘存储,Ehcache 和大多数缓存解决方案一样,提供高性能的内存和磁盘存储。

动态、运行时缓存配置,存活时间、空闲时间、内存和磁盘存放缓存的最大数目都是可以在运行时修改的。

4、标准支持

Ehcache 提供了对 JSR107 JCACHE API 最完整的实现。因为 JCACHE 在发布以前,Ehcache 的实现(如 net.sf.jsr107cache )

已经发布了。

实现 JCACHE API 有利于到未来其他缓存解决方案的可移植性。

1 / 17

Ehcache 的维护者 Greg Luck ,正是JSR107 的专家委员会委员。

5、可扩展性

监听器可以插件化。Ehcache 1.2 提供了 CacheManagerEventListener 和 CacheEventListener 接口,实现可以插件化,

并且可以在 ehcache.xml 里配置。

节点发现,冗余器和监听器都可以插件化。

分布式缓存,从 Ehcache 1.2 开始引入,包含了一些权衡的选项。Ehcache 的团队相信没有什么是万能的配置。

实现者可以使用内建的机制或者完全自己实现,因为有完整的插件开发指南。

缓存的可扩展性可以插件化。创建你自己的缓存扩展,它可以持有一个缓存的引用,并且绑定在缓存的生命周期内。

缓存加载器可以插件化。创建你自己的缓存加载器,可以使用一些异步方法来加载数据到缓存里面。

缓存异常处理器可以插件化。创建一个异常处理器,在异常发生的时候,可以执行某些特定操作。

6、应用持久化

在 VM 重启后,持久化到磁盘的存储可以复原数据。

Ehcache 是第一个引入缓存数据持久化存储的开源 Java 缓存框架。缓存的数据可以在机器重启后从磁盘上重新获得。

根据需要将缓存刷到磁盘。将缓存条目刷到磁盘的操作可以通过 cache.flush()方法来执行,这大大方便了 Ehcache 的使用。

7、监听器

缓存管理器监听器。允许注册实现了 CacheManagerEventListener 接口的监听器:

notifyCacheAdded()

notifyCacheRemoved()

缓存事件监听器。允许注册实现了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值