1、Cache Aside Pattern旁路缓存模式
Cache Aside Pattern是我们平时使用比较多的一个缓存读写模式,比较适合读请求比较多的场景。Cache Aside Pattern中服务端需要同时维系db和cache,并且是以db的结果为准。
(1)写
先更新db;
然后直接删除cache。
(2)读
从cache中读取数据,读取到就直接返回;
cache中读取不到的话,就从db中读取数据返回;
再把数据放到cache中。
2、Read/Write Through Pattern读写穿透
Read/Write Through Pattern中服务端把cache视为主要数据存储,从中读取数据并将数据写入其中。cache服务负责将此数据读取和写入db,从而减轻了应用程序的职责。
(1)写
先查cache,cache中不存在,直接更新db;
cache中存在,则先更新cache,然后cache服务自己更新db(同步更新cache和db)。
(2)读
从cache中读取数据,读取到就直接返回;
读取不到的话,先从db加载,写入到cache后返回响应。
3、Write Behind Pattern异步缓存写入
Write Behind Pattern和Read/Write Through Pattern很相似,两者都是由cache服务来负责cache和db的读写。
但是,两个又有很大的不同:Read/Write Through是同步更新cache和db,而Write Behind则是只更新缓存,不直接更新db,而是改为异步批量的方式来更新db。