在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦。本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展。

 1、Ehcache – Java分布式缓存框架

  Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。同时EhCache 扩展非常简单,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。

  官方网站:http://ehcache.org/

  Ehcache有以下特点:

  • 存取速度非常快,性能很不错。
  • 可以应用多种缓存策略。
  • 分级缓存,用户可以指定哪些数据在硬盘中缓存,哪些数据在内存中缓存。
  • 可以通过RMI、可插入API等方式进行分布式缓存。
  • 具有缓存和缓存管理器的侦听接口。
  • 支持多缓存管理器实例,以及一个实例的多个缓存区域。
  • 默认提供Hibernate的缓存实现。

  Ehcache的配置示例代码:

<ehcache>
 <diskStore path=”java.io.tmpdir”/>
 <defaultCache
 maxElementsInMemory=”10000″
 eternal=”false”
timeToIdleSeconds=”120″
 timeToLiveSeconds=”120″
 overflowToDisk=”true”
maxElementsOnDisk=”10000000″
 diskPersistent=”false”
diskExpiryThreadIntervalSeconds=”120″
 memoryStoreEvictionPolicy=”LRU”
/>
 </ehcache>

  在同类的Java缓存框架中,Ehcache配置相对简单,也比较容易上手,最大的优势是它支持分布式缓存