`
xiaoxin5230
  • 浏览: 88760 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

缓存之EHcache

    博客分类:
  • j2ee
阅读更多
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
主要的特性有:
1. 快速.
2. 简单.
3. 多种缓存策略
4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题
5. 缓存数据会在虚拟机重启的过程中写入磁盘
6. 可以通过RMI、可插入API等方式进行分布式缓存
7. 具有缓存和缓存管理器的侦听接口
8. 支持多缓存管理器实例,以及一个实例的多个缓存区域
9. 提供Hibernate的缓存实现
下面是个人的写的一个通用类

package com.xyj.com.tool.cache.ehcache;

import java.io.Serializable;
import java.util.List;



import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheException;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
import net.sf.ehcache.ObjectExistsException;

/**
 * @className:EHCacheUtil.java
 * @classDescription:ehcache工具类
 * @author:xiayingjie
 * @createTime:2010-12-1
 */

public class EHCacheUtil {

	private  static CacheManager cacheManager = null;
	
	private static Cache cache=null;

//------------------简化---------------------
	
	/**
	 * 初始化缓存管理容器
	 */
	public static CacheManager initCacheManager() {
		try {
			if (cacheManager == null)
				cacheManager = CacheManager.getInstance();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return cacheManager;
	}

	/**
	 * 初始化缓存管理容器
	 * 
	 * @param path
	 *            ehcache.xml存放的路徑
	 */
	public static CacheManager initCacheManager(String path) {
		try {
			if (cacheManager == null)
				cacheManager = CacheManager.create(path);
		} catch (Exception e) {
			e.printStackTrace();

		}
		return cacheManager;
	}
	
	/**
	 * 初始化cache
	 * @param cacheName
	 * @return
	 */
	public static Cache initCache(String cacheName) {
		checkCacheManager();
		
		if(null==cacheManager.getCache(cacheName)){
			cacheManager.addCache(cacheName);
		}
	
		cache=cacheManager.getCache(cacheName);
		return cache;
	}
	

	/**
	 * 添加缓存
	 * @param key
	 *            关键字
	 * @param value
	 *            值
	 */
	public static void put(Object key,Object value) {
		checkCache();
		// 创建Element,然后放入Cache对象中
		Element element = new Element(key, value);
		cache.put(element);
	}
	/**
	 * 获取cache
	 * 
	 * @param key
	 *            关键字
	 * @return 

	 */
	public static Object get(Object key){
		checkCache();
		Element element = cache.get(key);
		return element.getObjectValue();
	}

	//------------------方便调用------------

	/**
	 * 释放CacheManage
	 * 
	 */
	public static  void shutdown() {
		cacheManager.shutdown();
	}

	/**
	 * 移除cache
	 * @param cacheName
	 */
	public static void removeCache(String cacheName){
		checkCacheManager();
		cache=cacheManager.getCache(cacheName);
		if(null!=cache){
			cacheManager.removeCache(cacheName);
		}
	}
	
	/**
	 * 移除所有cache
	 */
	public static void removeAllCache(){
		checkCacheManager();
		cacheManager.removalAll();
	}
	
	/**
	 * 移除所有Element
	 */
	public static void removeAllKey(){
		checkCache();
		cache.removeAll();
	}
	
	/**
	 * 获取所有的cache名称
	 * @return
	 */
	public static  String[]getAllCaches(){
		checkCacheManager();
		return cacheManager.getCacheNames();
	}
	/**
	 * 获取Cache所有的Keys
	 * @return
	 */
	public  static List getKeys(){
		checkCache();
		return cache.getKeys();
	}

	/**
	 * 检测cacheManager
	 */
	private static void checkCacheManager(){
		if(null==cacheManager){
			throw new IllegalArgumentException("调用前请先初始化CacheManager值:EHCacheUtil.initCacheManager");
		}
		
	}
	
	private static void checkCache(){
		if(null==cache){
			throw new IllegalArgumentException("调用前请先初始化Cache值:EHCacheUtil.initCache(参数)");
		}
	}
	
	
	public static void main(String[]arg){

		//初始化--必须
		EHCacheUtil.initCacheManager();
		//放入Test Cache中
		EHCacheUtil.initCache("ceshi");
		EHCacheUtil.put("F", "Test1");		
		System.out.println(EHCacheUtil.get("F"));
		


//		//放入Test Cache中
//		EHCacheUtil.initCache("Test");
//		EHCacheUtil.put("s", "Test");	
//		String[]caches=EHCacheUtil.getAllCaches();
//		for(String s:caches){
//			System.out.println(s);
//		}
//		
		
	
	}
}
分享到:
评论

相关推荐

    基于java的开发源码-ehcache(Java缓存框架 EhCache).zip

    基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 ...

    Java缓存框架 EhCache

    **Java缓存框架 EhCache** EhCache是一个广泛使用的开源Java缓存框架,它以其高效、轻量级和易于集成的特性,在Java开发领域中占据了重要的地位。作为进程内缓存解决方案,EhCache能够在应用程序运行时存储数据,...

    spring + ehcache + redis两级缓存

    当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...

    ehcache页面缓存技术

    ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache...

    Java缓存框架 Ehcache.zip

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 下图是 Ehcache 在应用程序中的位置: 主要的特性有: 1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:...

    Ehcache分布式缓存与其在SpringBoot应用

    Ehcache是一个高性能的、基于Java的进程内缓存解决方案,它被广泛应用于各种Java应用程序,包括Java EE和轻量级容器。Ehcache的主要优势在于它的快速响应、易用性和丰富的缓存策略。它提供了两种级别的缓存存储:...

    ehcache(Java缓存框架 EhCache)

    ehcache(Java缓存框架 EhCache)

    Spring 与Ehcache实现基于方法的缓存

    Ehcache则是一款广泛使用的开源缓存解决方案,用于提高应用程序性能,减少数据库负载。本篇文章将详细探讨如何在Spring框架中集成并实现基于方法的缓存机制,利用Ehcache来优化数据访问。 首先,我们需要理解Spring...

    开源缓存包 EHCache 全接触

    **开源缓存包 EHCache 全接触** EHCache 是一个广泛使用的开源 Java 缓存解决方案,它被设计用于提高应用程序的性能和响应速度,通过存储数据到内存中,避免了频繁的数据库访问。EHCache 适用于多种场景,包括 Web ...

    java 缓存插件ehcache 应用实例

    Ehcache是一款广泛使用的开源Java缓存框架,尤其在处理大量数据时,它可以显著提升应用程序的效率。本文将深入探讨Ehcache在实际应用中的实例。 一、Ehcache简介 Ehcache是由Terracotta公司开发的高性能、易用的...

    JAVA源码ehcache(Java缓存框架EhCache)

    JAVA源码ehcache(Java缓存框架EhCache)

    java源码:ehcache(Java缓存框架 EhCache).rar

    EhCache是一个开源的Java缓存框架,广泛用于提高应用程序的性能和响应速度。它允许在内存中存储数据,减少对数据库的访问,从而优化系统性能。以下是对EhCache框架的一些关键知识点的详细说明: 1. **缓存概念**: ...

    ehcache缓存配置详解

    ehcache 缓存配置详解 Ehcache 是一个流行的 Java 缓存框架,提供了强大的缓存机制,帮助开发者提高应用程序的性能和可扩展性。 Ehcache 的配置主要包括 diskstore、defaultCache、cache 三个部分,这三个部分的...

    Ehcache缓存

    **Ehcache缓存** Ehcache是一种广泛使用的开源Java分布式缓存系统,它为高性能应用程序提供了内存存储和缓存解决方案。在Java世界中,尤其是在持久化框架如Hibernate的使用中,Ehcache扮演了至关重要的角色。由于...

    ehcache(Java缓存框架 EhCache).7z

    在Java世界中,缓存是优化系统性能的关键技术之一,它通过存储经常访问的数据来减少对数据库的访问,从而降低系统负载。EhCache作为其中的佼佼者,因其易用性、高效性和可扩展性而备受青睐。 EhCache的核心特性包括...

    缓存框架-Ehcache学习笔记

    **缓存框架 Ehcache 学习笔记** Ehcache 是一个广泛使用的开源 Java 缓存框架,它在处理大量数据的高性能应用中扮演着重要角色。Ehcache 提供了本地内存缓存、磁盘存储以及分布式缓存的能力,使得应用程序能够快速...

    java资源ehcache(Java缓存框架EhCache)

    java资源ehcache(Java缓存框架 EhCache)提取方式是百度网盘分享地址

    基于java的ehcache(Java缓存框架 EhCache).zip

    EhCache是一个高性能、易用且广泛应用于Java环境中的分布式缓存框架。它主要用于提高应用程序的性能和响应速度,通过存储经常访问的数据到内存中,避免频繁地从数据库或者其他慢速资源中读取数据。本资料包将详细...

    hibernate缓存ehcache用法

    这篇博客文章“hibernate缓存ehcache用法”可能详细介绍了如何在Hibernate中配置和使用Ehcache。 首先,我们需要理解什么是缓存。缓存是一种存储技术,用于临时保存经常访问的数据,以减少对主存储器(如数据库)的...

    Spring Boot的EhCache缓存使用.docx

    在Spring Boot应用中,缓存是提升性能的关键技术之一。默认情况下,Spring Boot的`@EnableCaching`注解会使用`ConcurrentHashMap`作为基本的缓存管理器。然而,对于生产环境,我们通常需要更强大的缓存解决方案,如...

Global site tag (gtag.js) - Google Analytics