缓存存储,也是数据的冗余。
(1)数据库访问数据,磁盘IO,慢;
(2)缓存里访问数据,存操作,快;
(3)数据库里的热数据,可在缓存冗余一份;
(4)先访问缓存,如果命中,能大大的提升访问速度,降低数据库压力;
这些,是缓存的核心读加速原理。
但是,一旦没有命中缓存,或者一旦涉及写操作,流程会比没有缓存更加复杂,这些是今天要分享的话题。
读操作,如果没有命中缓存,流程是怎么样的?
答:如下图所示

(1)尝试从缓存get数据,结果没有命中;
(2)从数据库获取数据,读从库,读写分离;
(3)把数据set到缓存,未来能够命中缓存;
读操作的流程应该没有歧义。
写操作,流程是怎么样的?
答:写操作,既要操作数据库中的数据,又要操作缓存里的数据。
这里,有两个方案:
(1)先操作数据库,再操作缓存;
(2)先操作缓存,再操作数据库;
并且,希望保证两个操作的原子性,要么同
继续阅读与本文标签相同的文章
上一篇 :
数据库主从不一致,怎么解?
下一篇 :
Cache Aside Pattern
-
Dubbo在Service Mesh下的思考和方案
2026-05-21栏目: 教程
-
InnoDB,能将数据存储在DVD里?
2026-05-21栏目: 教程
-
InnoDB并发如此高,原因竟然在这?
2026-05-21栏目: 教程
-
InnoDB行锁,如何锁住一条不存在的记录?
2026-05-21栏目: 教程
-
缓存与数据库不一致,咋办?
2026-05-21栏目: 教程
