缓存分类
本地缓存与分布式缓存
缓存分类
根据保存位置的不同,缓存分为:
- 本地缓存:保存在服务所在机器上,占用JVM内存空间
- 分布式缓存:保存在独立的服务上,如Redis集群上
本地缓存
将一些只读基础数据进行本地缓存,减轻数据库访问压力,加快程序访问速度。
这类数据特点是变更不频繁,对缓存与数据库中数据不一致容忍度较高。
服务启动时进行本地缓存加载,可以采用定时刷新缓存或者监听消息的方式重新加载缓存来保证本地缓存数据的实时性。
缺点:
- 占用本地内存,数据量受限
- 每个服务都需要保存,副本较多
- 服务启动时需要加载,可能导致启动时间较长
优点:
- 本地缓存访问速度更快,独立缓存不互相影响
分布式缓存
将非只读缓存保存在分布式缓存集群中,可以提高服务的灵活度,提高响应速度提高并发量。
这些数据基本都是程序运行过程中加载到缓存并在一段时间后会从缓存卸载。
缺点:
- 需要部署额外缓存集群;需要提供多副本防止单点故障
- 业务集群共用,缓存污染容易导致整个业务不可用
优点:
- 不占用本地内存,数据量不受限制
- 与业务集群解耦,缓存保存在缓存集群中
- 服务运行过程中加载和卸载,不影响服务启动耗时
This post is licensed under CC BY 4.0 by the author.