一、简介

  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入门的更多相关文章

  1. Ehcache入门基础

    1.ehcache的简介  EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 2.ehcache入门实例 1.首先先导入 ...

  2. Ehcache入门(一)——开发环境的搭建

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 那么.如何搭建Ehcache的开发环境呢? 1.下载相关的jar包,这 ...

  3. Ehcache入门经典:第二篇ehcache.xml的参数

    继续第一篇 diskStorepath:指定在硬盘上存储对象的路径path属性可以配置的目录有: user.home(用户的家目录) user.dir(用户当前的工作目录) java.io.tmpdi ...

  4. Ehcache入门经典:第一篇

    ehcache主要是轻量级的缓存实现 ehcache.xml <?xml version="1.0" encoding="UTF-8"?> < ...

  5. ehcache入门基础示例

    一:目录 EhCache 简介 Hello World 示例 Spring 整合 二: 简介 1. 基本介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernat ...

  6. Ehcache入门介绍一

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 特性有: 1. 快速轻量 Ehcache的线程机制是为大型高并发系统设 ...

  7. Ehcache学习总结(1)--Ehcache入门介绍

    Ehcache是现在最流行的纯Java开源缓存框架,配置简单.结构清晰.功能强大,最初知道它,是从hibernate的缓存开始的.网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的 ...

  8. Java缓存组件 EhCache 入门教程

    1.技术背景: 系统缓存是位于应用程序与物理数据源之间,用于临时存放复制数据的内存区域,目的是为减少应用程序对物理数据源访问的次数,从而提高应用程序的运行性能.缓存设想内存是有限的,缓存的时效性也是有 ...

  9. Ehcache 入门详解 (转)

    一:目录 EhCache 简介 Hello World 示例 Spring 整合 二: 简介 2.1.基本介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hiberna ...

随机推荐

  1. Cookie 和 Session 的区别

    [[ from 老生常谈session,cookie的区别,安全性 ]] 一,为什么session,cookie经常会有人提到 做web开发的人基本上都会用session和cookie,但是仅仅只是会 ...

  2. (C#)WinForm窗体间传值

      1.通过构造函数 特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int v ...

  3. 加密–RSA前端与后台的加密&解密

    1. 前言 本问是根据网上很多文章的总结得到的. 2. 介绍 RSA加密算法是一种非对称加密算法. 对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法 ...

  4. Python入门笔记(20):Python函数(3):关于lambda

    一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的.如下: """命名的foo函数&q ...

  5. TreeBuilder科学的树创建器

    public static class TreeBuilder { public static List<dynamic> Build(IEnumerable<dynamic> ...

  6. 2016ASP.NET使用QQ邮箱发送信息最全+无错误

    public static bool SendEmail(string mailTo, string mailSubject, string mailContent) { // 设置发送方的邮件信息, ...

  7. 【Java Saves!】Session 6:十六指星人

    前面说,计算机用2个手指头数数,它内部的数是二进制,有0和1两个数字.也看到,对于人来说,二进制数too long, too inconvenient, sometimes troublesome.程 ...

  8. [moka同学摘录]iptables防火墙规则的添加、删除、修改、保存

    文章来源:http://www.splaybow.com/post/iptables-rule-add-delete-modify-save.html 本文介绍iptables这个Linux下最强大的 ...

  9. jquery 下拉选择框/复选框常用操作

    通常 1.我们需要获取select中选中的值,可以使用: $("#selectID").find("option:selected").val();  --一般 ...

  10. Hazelcast介绍与使用

    Hazelcast 是一个开源的可嵌入式数据网格(社区版免费,企业版收费).你可以把它看做是内存数据库,不过它与 Redis 等内存数据库又有些不同.项目地址:http://hazelcast.org ...