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