1. Ehcache

在java项目中应用非常广泛, 主要面向通用缓存,J2EE和轻量级容器。一级缓存在内存,二级缓存在磁盘。
优点:
1. 直接在jvm虚拟机中缓存,速度快,效率高;
2. 小巧,使用简单;

缺点:
缓存共享麻烦,不易维护;集群分布式应用不方便。
应用场景:
单个应用或者对缓存访问要求很高的应用。

2. Varnish

高性能、开源的反向代理服务器和内存缓存服务器。
优点:
1. 高性能;
2. 多核支持;
3. 支持0-60秒的精确缓存时间。
缺点:
1. 不具备自动容错和恢复功能,重启后数据丢失;
2. 在线扩容比较难。
3. 32位机器上缓存文件大小为最大2GB;
4. 不支持集群。

应用场景:
并发要求不是很大的小型系统和应用。

3. Memcache

一个高性能的分布式内存对象缓存系统。通过key-value形式缓存。
优点:
1. 高性能;
2. 多线程支持,安装简单;
3. 部分容灾;
4. 均衡请求。

缺点:
1. 不能持久化存储;
2. 存储数据有限;
3. 集群数据没有复制和同步机制;
4. 内存回收不能及时。

应用场景:
大型系统,缓存共享、分布式部署和集群应用。

4. Redis

基于内存的键-值存储数据库。
优点:
1. 高性能;
2. 丰富的数据类型;
3. 支持持久化;
4. 支持主从复制。

缺点:
1. 不具备自动容错和恢复功能;
2. 在线扩容比较难;
3.不支持多核多线程处理。

应用场景:
大型系统,缓存共享、分布式部署和集群应用。

这里写图片描述

参考文献:
http://blog.csdn.net/msdnwoo/article/details/51577389
http://blog.csdn.net/jationxiaozi/article/details/8509732
http://m15623779417.blog.163.com/blog/static/238695050201511210219157/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐