ehcache入门
一、简介
ehcache是一个开源的,纯java进程内的缓存框架。它具有快速,简单,具有多种缓存策略等特点。 Hibernate中默认就是用了ehcache。在我们的应用中使用ehcache可以快速地提高应用的性能。ehcache主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api。
二、实例
ehcache下载地址为:http://www.ehcache.org/downloads/catalog 。一般我们使用ehcahe会使用配置文件进行缓存配置。先创建ehcache.xml文件,在该文件定义我们使用的cache名称,大小,调度算法等相关缓存配置。并将该文件存放在系统路径的src目录下。ehcache.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false"> <!-- 默认缓存配置 ,缓存名称为 default -->
<defaultCache maxElementsInMemory="50" eternal="false"
overflowToDisk="false" memoryStoreEvictionPolicy="LFU" />
<!-- 自定义缓存,名称为lt.ehcache -->
<cache name="lt.ecache" maxElementsInMemory="50" eternal="false"
overflowToDisk="false" memoryStoreEvictionPolicy="LFU" />
</ehcache>
name缓存的名称,必须唯一;overflowToDisk表示内存放满之后缓是否保存到硬盘上;memoryStoreEvictionPolicy 表示页面调度算法;eternal表示缓存是否过期;timeToIdleSeconds表示对象在多长时间没有被访问就会失效; timeToLiveSeconds表示对象存活时间,指对象从创建到失效所需要的时间。 maxElementsInMemory表示缓存元素的个数;maxElementsOnDisk表示在磁盘上缓存的element的最大数目,默认值为0,表示不限制。
调用代码如下:
package com.ehcache.simple; import java.util.List; import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import net.sf.ehcache.config.CacheConfiguration;
import net.sf.ehcache.config.Configuration;
import net.sf.ehcache.store.MemoryStoreEvictionPolicy; public class SimpleTest {
public static void main(String[] args) {
// InputStream in = SimpleTest.class.getClassLoader().getResourceAsStream("ehcache.xml");
// URL url = SimpleTest.class.getClassLoader().getResource("ehcache.xml");
// URL url2 = SimpleTest.class.getResource("ehcache.xml");
String path = System.getProperty("ehcache.xml");
CacheManager manager = CacheManager.create(path); //创建Cache对象
Cache cache = manager.getCache("lt.ecache"); //cache缓存名称
System.out.println("cache name: " + cache.getName()); //将对象放入缓存
Element element = new Element("hello", "world");
Element element2 = new Element("aaa", "111");
Element element3 = new Element("bbb", "222");
Element element4 = new Element("bbb", "222");
cache.put(element);
cache.put(element2);
cache.put(element3);
cache.put(element4);//key相同时会被覆盖 //cache缓存对象个数
System.out.println("size: " + cache.getSize()); // 从cache中取回元素
System.out.println("hello: " + cache.get("hello").getValue()); List<String> keys = cache.getKeys();//所有缓存对象的key // 遍历所有缓存对象
for(String key : keys ){
System.out.println(key + " : " + cache.get(key));
} // 从Cache中移除一个元素
System.out.println(cache.remove("hello"));
System.out.println(cache.remove("hello2")); //移除所有缓存对象
cache.removeAll(); System.out.println("size: " + cache.getSize()); manager.shutdown();
} }
ehcache.xml在系统下,通过加载ehcache.xml创建缓存对象。运行结果如下:

除了使用配置文件创建Cache对象之外,我们也可以通过代码的方式创建。相关代码如下:
CacheConfiguration cacheConfig = new CacheConfiguration("lt.ecache", 50)
.memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LFU) // 设置调度算法
.overflowToDisk(true) // 设置是否缓存到硬盘
.eternal(false) // 设置是否过期
.timeToLiveSeconds(60) // 对象存活时间
.timeToIdleSeconds(30) // 调度设置最大不活动时间
.diskPersistent(false) // 是否在磁盘上持久化。指重启jvm后,数据是否有效。默认为false。
.diskExpiryThreadIntervalSeconds(0);// 设置对象检测线程运行时间间隔
Configuration config = new Configuration();
config.addCache(cacheConfig);
CacheManager manager = CacheManager.create(config);
// 创建Cache对象
Cache cache = manager.getCache("lt.ecache");
ehcache入门的更多相关文章
- Ehcache入门基础
1.ehcache的简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 2.ehcache入门实例 1.首先先导入 ...
- Ehcache入门(一)——开发环境的搭建
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 那么.如何搭建Ehcache的开发环境呢? 1.下载相关的jar包,这 ...
- Ehcache入门经典:第二篇ehcache.xml的参数
继续第一篇 diskStorepath:指定在硬盘上存储对象的路径path属性可以配置的目录有: user.home(用户的家目录) user.dir(用户当前的工作目录) java.io.tmpdi ...
- Ehcache入门经典:第一篇
ehcache主要是轻量级的缓存实现 ehcache.xml <?xml version="1.0" encoding="UTF-8"?> < ...
- ehcache入门基础示例
一:目录 EhCache 简介 Hello World 示例 Spring 整合 二: 简介 1. 基本介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernat ...
- Ehcache入门介绍一
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 特性有: 1. 快速轻量 Ehcache的线程机制是为大型高并发系统设 ...
- Ehcache学习总结(1)--Ehcache入门介绍
Ehcache是现在最流行的纯Java开源缓存框架,配置简单.结构清晰.功能强大,最初知道它,是从hibernate的缓存开始的.网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的 ...
- Java缓存组件 EhCache 入门教程
1.技术背景: 系统缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能.缓存设想内存是有限的,缓存的时效性也是有 ...
- Ehcache 入门详解 (转)
一:目录 EhCache 简介 Hello World 示例 Spring 整合 二: 简介 2.1.基本介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hiberna ...
随机推荐
- C#中引用类型和值类型
C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型. C#的引用类型包括:数组,用户定义的类.接口.委托,object,字符串. 值类型和引用类型的区别在于,值类型的变 ...
- CentOS6.5菜鸟之旅:安装Realtek无线网卡驱动
一.前言 CentOS6.5不像CentOS7和Unbuntu那样自动安装好了无线网卡驱动,因此需要我们折腾一下. 二.安装前的准备工作 [a] 检查无线网卡驱动的安装情况(通过查看网络接口的安装 ...
- BZOJ1015 并查集
1015: [JSOI2008]星球大战star war Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了 ...
- Week3 博客阅读感想和代码复审
一.关于博客阅读感想 阅读了十多篇老程序员(大多在计算机相关行业工作超过10年)关于自身经历的博客,很有感触.这里一方面总结一下看博客的收获,另一方面写点自己的感受. 首先,这些博客不少涉及到了两大类 ...
- [团队项目]expat不兼容BUG
本周五软工团队项目的第一次前后端全部对接时,出了一个蛋疼的错误. 最初起因是小丽叔出于安全的考虑,使用守护进程来跑Web服务器.守护进程(Daemon)是运行在后台的一种特殊进程,如果服务器用root ...
- 关于WIndows内核自映射方案的通俗解释
在一次操作系统课程上听老师说了这么一个有意思的东西,windows的自映射方案居然达到了把4K的页目录的线性地址“藏”在4M页表里的效果,感觉甚是奇特,于是乎就想着说怎么去算.光会算之后仍旧不满足,我 ...
- 阅读《构建之法》P384~391
通过阅读<构建之法>P384~391以及参考阅读杜老师给出的链接,得出一个重要的结论:软件工程师的职业道德至关重要. 软件工程的动态性和需求的前后关系,要求一个规范能对出现的新情形有较强的 ...
- 用Qt写软件系列二:QCookieViewer(浏览器Cookie查看器)
预备 继上篇<浏览器缓存查看器QCacheViewer>之后,本篇开始QCookieViewer的编写.Cookie技术作为网站收集用户隐私信息.分析用户偏好的一种手段,广泛应用于各大网站 ...
- 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)
实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...
- C# 实现WinForm窗口最小化到系统托盘代码,并且判断左右鼠标的事件
1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小 ...