内部本地缓存
- 特点
- 共享相同的虚拟内存,应用自身进程直接管理维护,比较简单
- 访问速度非常快,数据传输不受网络I/O影响,没有网络通信带来的序列化过程
- 只提供针对应用自身进程的访问
- 不提供分布式缓存的一致性功能
- 与应用自身进程高度耦合,随着应用自身进程消亡而消亡
- 无法支持大量数据,因为应用自身进程也占用大量内存资源
- 场景
在应用层中使用,用于缓存只读数据、独立部署服务节点、且不会频繁更新的数据 - go 模块(hash结构存储)
fastcache、bigcache、gocache
外部分布式缓存
- 特点
- 访问速度比内部本地缓存慢
- 部署多节点时可以共享数据
- 为集群式多节点部署下的数据提供一致性
- 高可用,与应用进程解耦,可以避免单点故障
- 支持大量数据
- 场景
在应用层和DB层之间使用,要求高可用、数据更新频繁、分布式节点下的数据 - 组件
redis、memcache