缓存,内存,本地缓存等辨析
快速辨析缓存,内存,本地缓存,memcache,redis等
(个人临时记录)
缓存
泛指所有用于暂存数据以提升访问速度的技术,包括本地缓存、分布式缓存、CPU缓存等。核心目标是减少对慢速存储(如磁盘、数据库)的直接访问
本地缓存
属于缓存的一种,特指与应用程序同进程的内存存储(如Java的HashMap、Guava Cache)。数据仅在当前进程有效,无法跨节点共享,访问速度极快(纳秒级)但容量有限
技术举例:Guava Cache、Caffeine(数据仅在当前进程有效,无法跨节点共享,访问速度极快(纳秒级)但容量有限,适合单机高频数据临时存储)
分布式缓存
也是缓存的一种,和本地缓存相对。独立进程运行,跨节点共享数据,支持高可用和扩展
技术举例:Redis、Memcached(独立服务,内存为主)
特点比如redis支持数据共享:支持多节点共享数据,解决集群部署下的数据一致性问题。也支持持久化与高可用:支持RDB/AOF持久化、主从复制、集群分片等而MemCache是典型的内存缓存系统,清理依赖LRU、过期策略和手动干预
补充别的分类
-
比如缓存还可以按按应用层级分类包括:
- 客户端缓存:浏览器缓存、移动端SQLite。
- 网络层缓存:CDN、Squid代理
- 服务端缓存:Nginx反向代理缓存、Redis集群。
- 数据库缓存:MySQL Query Cache、Oracle Buffer Pool
-
按功能特性分类
- 时间触发缓存:基于TTL自动失效(如Redis的EXPIRE)。
- 内容触发缓存:数据变更时强制更新(如数据库写后删缓存)。
- 静态缓存:预渲染HTML/XML,适用于低频更新内容
内存
内存是缓存的一种媒介,但是缓存可以不止在内存上。内存读写避免磁盘I/O瓶颈,显著降低数据库负载
也是需要清楚概念区分
- 内存缓存:数据存储在内存(RAM)中,访问速度最快(纳秒级),比如redis,Memcached(分布式)或者Caffeine(本地缓存)
- 磁盘缓存:数据存储在磁盘(SSD/HDD)上,速度慢于内存但容量更大,支持持久化。比如浏览器缓存(本地文件)、CDN边缘节点缓存
- 混合存储:结合内存和磁盘优势,如内存存热点数据,磁盘存冷数据。如Redis(可配置持久化)、Kafka(页缓存+磁盘)
内存中的技术
包括Slab分配机制,LRU淘汰策略等,这类概念是属于这一层的