Cache Aside模式
- 读取失效:cache数据没有命中,查询DB,成功后把数据写入缓存
- 读取命中:读取cache数据
- 更新:把数据更新到DB,失效缓存(不是更新缓存,因为并发有可能会脏数据)
// Read
data = cache.get(id);
if (data == null) {
data = db.get(id);
cache.put(id, data);
}
// Write
db.save(data);
cache.invalid(data.id);
Read/Write Through模式
-
缓存代理了DB读取、写入的逻辑,可以把缓存看成唯一的存储。
Write Behind Caching(Write Back)模式
-
这种模式下所有的操作都走缓存,缓存里的数据再通过异步的方式同步到数据库里面。所以系统的写性能能够大大提升了。