一、Ehcache
Ehcache 是设计于提高在数据从RDBMS中取出来的高花费、高延迟而采取的一种缓存方案,主要面向通用缓存,Java EE和轻量级容器,具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,支持REST等特点。
特色:
- 多种缓存策略
- 快、简单、轻量、易拓展
- 具有缓存和缓存管理器的侦听接口
- 缓存数据有两级:内存和磁盘
- 支持多缓存管理器实例,以及一个实例的多个缓存区域
- 提供Hibernate的缓存实现
- 缓存数据会在虚拟机重启的过程中写入磁盘
二、Redis
Redis是一个key-value存储系统。它支持存储多种value类型,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。Redis将数据都是缓存在内存中。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
特色:
- 速度快
- 持久化
- 支持多种数据类型
- 功能丰富【还支持事务、流水线、发布/订阅、消息队列等功能】
- 高可用及分布式
三、memcache
memcache 是一种高性能、分布式对象缓存系统,可以想象成一个大的内存HashTable,即key-value键值缓存。
特色:
- 多线程支持
- 高性能
redis与memcached比较:
- redis可以用来做存储(storage),而memcached是用来做缓存(cache)
- redis中存储的数据有多种结构,而memcached存储的数据只有一种类型“字符串”
redis与ehcache比较:
- ehcache:直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。
- redis:是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。
建议:
如果是单个应用或者对缓存访问要求很高的应用,用ehcache。
如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。
参考文档:
https://www.cnblogs.com/qlqwjy/p/7788912.html
https://blog.csdn.net/ShiXueTanLang/article/details/79596198
本文对比了Ehcache、Redis和Memcache这三种缓存技术。Ehcache适用于Java EE环境,支持内存和磁盘存储。Redis提供了丰富的数据结构,支持事务和高可用性。Memcache则是一个高性能的键值存储系统。在选择时,如果需要高速本地缓存可选Ehcache,大型分布式系统推荐使用Redis。

993

被折叠的 条评论
为什么被折叠?



