天天看点

ehcache缓存介绍

介绍

ehcache是一个开源、用来提高性能降低数据库压力并简化可伸缩性的缓存库。Ehcache是健全的、经过验证的、全特性的、使用最广泛的基于Java的缓存库。
  它可以使用千兆级别的缓存,从处理中的单个或多个节点扩充到处理中/非处理中混合配置。当应用系统需要连贯的分布式缓存时,Ehcache使用开源的Terracotta服务陈列
           

特性

  • 快速和轻量级
    多年来,各种不同的性能测试已经表明Ehcache是最快的Java缓存之一。Ehcache的线程是为大规模的、高并发的系统设计的。
               
  • 可伸缩性
    为提供扩展到千兆字节,提供内存和磁盘存储。最大的Ehcache安装使用几百个缓存。调整大型多CPU服务器的并发负载。线程安全和性能之间有一种拉力。Ehcache的线程初始时是粗粒度的,但已越来越多的使用doug lea的建议,来实现更高的性能。每个虚拟机中多个CacheManagers这使得完全不同的ehcache.xml的配置使用成为可能。          
     使用Terracotta框架扩展到几百个节点(集群节点)通过添加Terracotta,Ehcache可以扩展到任何使用场景。
               
  • 支持对象或序列化缓存
    非序列化的对象可以使用Ehcache中除DiskStore(磁盘存储)和复制之外的所有部分。如果尝试去存储或复制对象,一个警告级别的日志消息会出现。除了元素返回的方法(获取缓存元素,可理解为数据)不同外,对象和序列化的API是一致的。
     Ehcache提供LRU-最近最少使用、LFU-较少频率使用和FIFO-先进先出三种缓存置换算法。
               
  • 提供内存和磁盘存储
    Ehcache,像众多的缓存解决方案一样,提供高性能的内存和磁盘存储。在线时间、下线时间、内存和磁盘中的最大容量等配置,可以通过变换缓存配置对象在运行时做调整。
               
  • 可扩展性
    Ehcache提供CacheManage事件监听和Cache事件监听接口,配置在ehcache.xml中的接口实现可以被插入。
     同伴发现,插入复制器和监听器
     Ehcache分布式缓存包含很多选择和权衡。实现者可以使用内建机制或编写自己的实现。
     可插入缓存扩展
     可插入缓存加载器
     可插入缓存异常处理器
               
  • 应用持久化

    VM重启时,持久化存储到存储数据的磁盘,当应用启动时,缓存数据可以使用。需要时Flush到磁盘

  • 监听器

    CacheManager监听器通过CacheManagerEventListener接口注册CacheManager监听器。

  • JMX

    Ehcache可使用JMX管理如下MBeans:

    CacheManager 缓存管理器

    Cache 缓存

    CacheConfiguration 缓存配置

    CacheStatistics 缓存统计

  • 分布式缓存
    全面支持高性能、灵活、可扩展的分布式缓存。
    分布式缓存包含的选项:
    通过Terracotta使用集群缓存:在Ehcache中安装和使用Terracotta只需要两行必须的配置,为调整缓存行为和性能提供很多选项。
               
  • 缓存服务器
    Ehcache提供缓存服务器,通过WAR包(兼容大多数Web容器)或独立服务器。缓存服务器有两套API接口:面向RESTful资源和SOPA。这两套API均支持客户端使用任何的编程语言。
               

继续阅读