`
Poechant
  • 浏览: 229573 次
博客专栏
Bebe66e7-3a30-3fc9-aeea-cfa3b474b591
Nginx高性能Web服务...
浏览量:24325
5738817b-23a1-3a32-86de-632d7da73b1e
Cumulus实时媒体服务...
浏览量:22104
社区版块
存档分类
最新评论

进程内缓存框架EhCache

 
阅读更多

进程内缓存框架 EhCache

  • Author: Poechant
  • Blog:blog.CSDN.net/Poechant
  • Email: zhongchao.ustc#gmail.com (#->@)
  • Date: February 27th, 2012

1. What the hell is EhCache?

Resize icon

EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。EhCache 具有以下特点(摘自开源中国社区)。

  • 快速
  • 简单
  • 多种缓存策略
  • 缓存数据有两级:内存和磁盘,因此无需担心容量问题
  • 缓存数据会在虚拟机重启的过程中写入磁盘
  • 可以通过 RMI、可插入 API 等方式进行分布式缓存
  • 具有缓存和缓存管理器的侦听接口
  • 支持多缓存管理器实例,以及一个实例的多个缓存区域
  • 提供 Hibernate 的缓存实现

2. 常用 API

构造函数

方法原型
public Cache(String name,
         int maxElementsInMemory,
         boolean overflowToDisk,
         boolean eternal,
         long timeToLiveSeconds,
         long timeToIdleSeconds)

该构造函数是EhCache 1.0 版本中的出现的,后续开发到 2.0 之后,出现了带有 CacheConfiguration 参数的构造函数,用法更强大。比如如下这个:

public Cache(CacheConfiguration cacheConfiguration,
         RegisteredEventListeners registeredEventListeners,
         BootstrapCacheLoader bootstrapCacheLoader)

用法可参见EhCache 的 API Docs

参数含义
  • name - 缓存的名称,default`保留为默认缓存名称;
  • maxElementsInMemory- 内存中的最大同时缓存元素个数;
  • overflowToDisk- 是否持久化(使用磁盘);
  • eternal- 对象是否永久有效(永不过期);
  • timeToLiveSeconds- 对象从其创建开始计算的生存时间(秒);
  • timeToIdleSeconds- 对象从其最后一次被访问开始计算的生存时间(秒)。

一般来说,只有namemaxElementsInMemorytimeToLiveSeconds显式设置,其他的参数常根据其不同的类型而设置为false0等。

put 方法

方法原型
public final void put(Element element)
           throws IllegalArgumentException,
                  IllegalStateException,
                  CacheException
参数含义
  • element:所要存储的元素,可参见其定义ElementAPI Docs。它是 EhCache 中缓存的基本单元。

get 方法

方法原型
public final Element get(Object key)
              throws IllegalStateException,
                     CacheException
参数含义
  • key:可以为任意类型的 key,比较灵活。

remove 方法

方法原型
public final boolean remove(Object key)
                 throws IllegalStateException
参数含义
  • key:指定的 key。

3. 示例

源码

package com.sinosuperman.ehcache;

import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;

public class Test {

    public static void main(String[] args) {

        String name = "Namespace";
        int capacity = 500;
        int refreshPeriod = 5000;

        // Initialize EhCache
        Cache cache = new Cache(name, capacity, false, false, refreshPeriod, 0);
        cache.initialise();
        System.out.println(
            "Initialize EhCache: " +
            "   name:       " + name +
            "   capacity:   " + capacity +
            "   expire:     " + refreshPeriod
        );

        // Set data into EhCache
        String key1 = "Key";
        String value1 = "Value";
        Element element1 = new Element(key1, value1);
        cache.put(element1);
        System.out.println("Set (" + key1 + ", " + value1 + ") into EhCache.");

        // Get data from EhCache
        Element element2 = cache.get(key1);
        String key2 = (String) element2.getObjectKey();
        String value2 = (String) element2.getObjectValue();
        System.out.println("Get (" + key2 + ", " + value2 + ") from EhCache.");

        // Remove data from EhCache
        if (cache.remove(key2)) {
            System.out.println("Remove data with key = " + key2 + " successfully.");
        }

        // Get EhCache size
        System.out.println("EhCache size is " + cache.getSize());
    }
}

结果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Initialize EhCache:     name:       Namespace   capacity:   500 expire:     5000
Set (Key, Value) into EhCache.
Get (Key, Value) from EhCache.
Remove data with key = Key successfully.
EhCache size is 0

进一步了解

可以登陆EhCache.org,他们的文档还蛮多的。Enjoy EhCache!

-

转载请注明来自“柳大的CSDN博客”:blog.CSDN.net/Poechant

-

分享到:
评论

相关推荐

    Java缓存框架 EhCache

    作为进程内缓存解决方案,EhCache能够在应用程序运行时存储数据,显著提高数据访问速度,减轻数据库负载,从而提升整体系统性能。 EhCache的核心功能包括: 1. **内存管理**:EhCache将数据存储在内存中,提供了对...

    Java缓存框架 Ehcache.zip

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

    Ehcache Java进程内缓存框架 v3.6.1

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 主要的特性有: 1. 快速. 2. 简单. 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此

    Ehcache Java 缓存框架 v3.6.1

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。主要的特性有:1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题5. 缓存...

    EhcacheJava缓存框架v3.6.1

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 主要的特性有: 1. 快速. 2. 简单. 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心...

    ehcache-core_2.7.0_API (CHM格式)

    Java缓存框架 EhCache EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 从之前发布其他chm文件下载用户的反映看,有不少朋友反映下载后打开无法显示,这一般不是...

    spring + ehcache + redis两级缓存

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

    springboot整合Ehcache组件,轻量级缓存管理

    EhCache是一个纯Java的进程内缓存框架,具有快速、上手简单等特点,是Hibernate中默认的缓存提供方。 2、Hibernate缓存 Hibernate三级缓存机制简介: 一级缓存:基于Session级别分配一块缓存空间,缓存访问的对象...

    ehcache-core-2.2.0.jar

    一个很好用的Java缓存框架 EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

    EhcacheJava缓存框架 v3.9.0

    为您提供EhcacheJava缓存框架下载,EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。主要的特性有:1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:内存和...

    Ehcache Java缓存框架 v3.8.1

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

    spring+ehcache实例demo

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,...

    Ehcache Java 缓存框架.rar

    在集群化部署的业务场景中,各个进程独自维护自己内存中的数据,而经由负载均衡器分发到各个节点进行处理的请求各不相同,这就导致了进程内缓存数据不一致,进而出现各种问题 —— 比较典型的就是缓存漂移问题。...

    Java缓存框架Java缓存框架

    ### Java缓存框架EhCache的关键知识点 #### 一、EhCache简介 EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点。它是Hibernate中默认的CacheProvider之一,广泛应用于各种Java应用中以提高性能和响应...

    SpringBoot 集成Ehcache实现缓存

    Ehcache是一个高效的纯Java进程内缓存框架,以其快速且轻便的特点而被广泛应用于各种应用场景中,尤其在Java EE和轻量级容器环境中更是受到青睐。Ehcache支持多种缓存策略,包括内存和磁盘存储,提供了缓存加载器、...

    ehcache.jar(含源码)

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。 Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,...

    Ehcache缓存技术

    Ehcache是一种在Java环境中使用的进程内缓存框架,其主要特点包括效率高、易于使用、支持多种缓存策略、具备内存和磁盘的数据两段存储方式、数据持久化以及支持分布式缓存。此外,Ehcache还默认提供了与MyBatis和...

    ehcache-3.0.3.jar

    EhCache纯Java的进程内缓存框架,快速、精干。最新版本请访问官网。

    ehcache-2.10.4

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

    mybatis添加ehcache缓存支持

    为了提高性能和减少对数据库的直接访问,MyBatis 提供了缓存功能,而Ehcache 是一个广泛使用的开源Java缓存库,可以集成到MyBatis 中以实现高效的缓存管理。 在MyBatis 中添加Ehcache 缓存支持,首先需要确保项目...

Global site tag (gtag.js) - Google Analytics