本地缓存:指的是在应用中的缓存组件,是应用和cache是在同一个进程内部,单应用不需要集群支持或者集群情况下各节点无需互相通知的场景下使用本地缓存较合适;
分布式缓存:应用分离的缓存组件或服务,是自身就是一个独立的应用,与本地应用隔离,多个应用可直接的共享缓存
DBMirror使用Map来实现一个简单的内存缓存,Set、List都可以达到内存缓存的功能,例如HashMap、LinkedHashMap、TreeMap、LinkedTreeMap、ConcurrentHashMap…
Redis 同样是一个高性能的基于内存中数据结构存储,用作数据库,缓存和消息代理。
Google 提供的一个非常好用的 Java 工具包。提供缓存过期策略,过期时间、容量等. 简化了缓存的使用
Caffeine是一个基于 Java8 开发的提供了近乎最佳命中率的高性能的缓存库。
一个高性能的、分布式的基于内存的key-value对象存储系统,用来存储小块的任意数据(字符串、对象)
Ehcache是纯Java开源缓存框架,是一个非常轻量级的缓存实现。
Spring Cache 并不是缓存的实现,而是一个缓存管理的抽象解决方案,这种方案消除了样板方法的使用,屏蔽了缓存的使用细节,而这是 Spring 最擅长干的.
参考:
spring cache: https://github.com/google/guava/wiki/CachesExplained
caffeine: https://github.com/ben-manes/caffeine
memcached: https://www.memcached.org/
redis: https://redis.io/