zoukankan      html  css  js  c++  java
  • 简单了解EhCache java进程内缓存框架

    一、EhCache概述

    EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存框架,可提高性能,减轻数据库负载并简化可伸缩性。它也是最广泛使用的基于Java的缓存,因为它健壮,可靠,功能齐全并与其他流行的库和框架集成。Ehcache从进程内缓存一直扩展到混合了TB级缓存的进程内/进程外混合部署。它主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存,servlet过滤器,支持REST和SOAP api等特点。

    二、EhCache特性

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

    集成方面:
    EhCache可以单独使用,一般在第三方库中被用到的比较多(如mybatis、shiro等)ehcache对分布式支持不够好,多个节点不能同步,通常和redis一块使用。

    灵活性方面:
    (1)ehcache具备对象api接口和可序列化api接口;
    (2)不能序列化的对象可以使用除磁盘存储外ehcache的所有功能;
    (3)支持基于Cache和基于Element的过期策略,每个Cache的存活时间都是可以设置和控制的;
    (4)提供了LRU、LFU和FIFO缓存淘汰算法,Ehcache 1.2引入了最少使用和先进先出缓存淘汰算法,构成了完整的缓存淘汰算法;
    (5) 提供内存和磁盘存储,Ehcache和大多数缓存解决方案一样,提供高性能的内存和磁盘存储;
    (6) 动态、运行时缓存配置,存活时间、空闲时间、内存和磁盘存放缓存的最大数目都是可以在运行时修改的。

    应用持久化方面:
    (1)在vm重启后,持久化到磁盘的存储可以复原数据;
    (2)Ehache是第一个引入缓存数据持久化存储的开源java缓存框架,缓存的数据可以在机器重启后从磁盘上重新获得;
    (3)根据需要将缓存刷到磁盘。将缓存条目刷到磁盘的操作可以通过cache.fiush方法执行,这大大方便了ehcache的使用。


    三、ehcache 和 redis比较

    (1)ehcache直接在jvm虚拟机中缓存,速度快,效率高,但缓存共享麻烦,集群分布式应用不方便;

    (2)redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。

    如果是单个应用或者对缓存访问要求很高的应用,用ehcache。

    如果是大型系统,存在缓存共享、分布式部署、缓存内容很大时,建议用redis。

    参考资料
    (1) https://www.jianshu.com/p/154c82073b07
    (2) http://www.ehcache.org/ (Ehcache官网)

  • 相关阅读:
    02.v-on的事件修饰符
    01.Vue的系统指令
    00-Vue的介绍和vue-cli
    vs code快捷键
    分库分表之后,主键的处理方法
    动态扩容分库分表
    前端web通过flask操作数据库-增删改查
    mysql组复制集群简介
    vsftp进阶-锁定目录
    kvm克隆
  • 原文地址:https://www.cnblogs.com/jasonboren/p/13367904.html
Copyright © 2011-2022 走看看