EhCache与Redis的比较

EhCache与Redis的比较(转载)

1. 基本介绍

EhCache 是一个纯Java的进程内缓存框架,具备快速、精干等特色,是Hibernate中默认CacheProvider。Ehcache是一种普遍使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具备内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特色。redis

Spring 提供了对缓存功能的抽象:即容许绑定不一样的缓存解决方案(如Ehcache),但自己不直接提供缓存功能的实现。它支持注解方式使用缓存,很是方便。数据库

2. 主要的特性有:

  1. 快速
  2. 简单
  3. 多种缓存策略
  4. 缓存数据有两级:内存和磁盘,所以无需担忧容量问题
  5. 缓存数据会在虚拟机重启的过程当中写入磁盘
  6. 能够经过RMI、可插入API等方式进行分布式缓存
  7. 具备缓存和缓存管理器的侦听接口
  8. 支持多缓存管理器实例,以及一个实例的多个缓存区域
  9. 提供Hibernate的缓存实现

3. 集成

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

4. ehcache 和 redis 比较

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

  • redis是经过socket访问到缓存服务,效率比ecache低,比数据库要快不少,
    处理集群和分布式缓存方便,有成熟的方案。若是是单个应用或者对缓存访问要求很高的应用,用ehcache。若是是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。mybatis

ehcache也有缓存共享方案,不过是经过RMI或者Jgroup多播方式进行广播缓存通知更新,缓存共享复杂,维护不方便;简单的共享能够,可是涉及到缓存恢复,大数据缓存,则不合适。框架

 

 

 

参考:ehcache入门基础示例jvm

相关文章
相关标签/搜索