缓存(Cache)就是一块用来存放数据的内存空间。主要作用是暂存数据处理结果,并提供下次访问使用。
缓存的使用非常普遍,比如,浏览器都会在本地缓存页面,从而减少HTTP 的访问次数。又如服务器系统开发时,设计人员为一些核心的 API 加上缓存,从而提高系统的缓存时间。
最简单的缓存实现可以使用 HashMap 。当然,这样做会有很多问题,如何时清理无效的数据;如何防止缓存数据过多而导致内存溢出等。一个稍好的方案是使用WeakHashMap,使用弱引用维护一张哈希表,而且可以在内存不足的时候清理数据。
但是作为最专业的实现,就应该有一套专业的缓存框架。比如EHCache、OSCache 和 JBossCache 等。EHCache 缓存出自 Hibernate, 是 Hibernate 框架默认的数据缓存解决方案;OSCache 是由 OpenSympthony 设计的,可以用来缓存任何对象,甚至是缓存部分 JSP 页面或者 HTTP 请求;JBossCache 是由 JBoss 开发、可用于 JBoss 集群间数据共享的缓存框架。
下面,我们以 EHCache 为例,简单介绍一下缓存的基本使用方法。
首先,我们需要在官网 http://ehcache.org 下载 EHCache 包 ,下载完成之后,将 lib 文件夹下的 jar 包添加到工程中就可以使用了。
引入 jar 包之后,在工程的 Classpath 路径下新建一个名为 ehcache.xml 的文件,如上图所示,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:n