使用场景:
互联网,数据越来越多,用户越来越多,并发量、吞吐量越来越大
- 使用数据库存储,分库分表,也不能满足要求,使用缓存,减轻数据库的压力
- 临时存储的数据
- 其他的场景:Session分离、分布式锁
缓存(服务器端):
本地缓存(local cache)
CurrentHashMap、Ehcache、Guava Cache
缓存在应用服务器,全局变量,JVM缓存
优势:和应用程序在同一进程,访问快,没有网络开销,一般不会崩
缺点:容量小,每个JVM有一份,有数据冗余
分布式缓存
Redis、Memcached、Tair(阿里、美团)、EVCache(AWS)、Aerospike
优势:空间优势、在应用中共享(session共享)、高可用(主从)、高扩展(分区)、集群
缺点:资源、网络开销、数据一致性(AP)
前面已经详解了Redis,接下来讲其他的缓存
GuavaCache、Tair、EVCache、Aerospike比较
| GuavaCache | Tair | EVCache | Aerospike | |
|---|---|---|---|---|
| 类别 | 本地缓存(JVM缓存) | 分布式缓存 | 分布式缓存 | 分布式NoSQL数据库 |
| 应用 | 高并发本地缓存 | 阿里、美团 | Netflix、AWS | 互联网广告行业(国外) |
| 性能 | 高 | 较高 | 很高 | 较高 |
| 持久化 | 无 | 有 | 有 | 有 |
| 集群 | 无 | 有 | 有 | 有 |