三种常见的缓存模式
Cache Aside Pattern(旁路缓存模式)
在Cache Aside
模式中,服务端将db
看作是唯一的真实数据源,Cache
是临时的,易失的副本。适合读多写少场景。
写:
- 更新
db
数据。 - 删除
Cache
数据。
读:
- 先读取
Cache
,存在直接返回。 - 若不存在,则读取
db
,返回。 - 再写入
Cache
。
Read/Write Through Pattern(读写穿透模式)
在Read/Write Through
模式中,服务端将Cache
视作主要的读写数据源,而Cache
负责将数据写入db
。
写:
- 首先查询
Cache
是否存在,不存在,则直接更新db
,若存在,则更新Cache
。 - 然后由
Cache
更新db
。
读:
- 首先查询
Cache
,若存在,直接返回。 - 若不存在,则从
db
中加载到Cache
,再返回。
Write Behind Caching Pattern(异步缓存写入模式)
Write Behind Caching Pattern
和Read/Write Through Pattern
类似,不同之处在于Write Behind Pattern
采取批量异步的方式更新db
。
这样db
写的效率很高,但是数据一致性风险大,常用于对数据一致性要求不高的场景,例如点赞量,浏览量等。
评论区