[关闭]
@1234567890 2017-05-22T13:25:49.000000Z 字数 413 阅读 1129

缓存架构设计

架构


缘起需求

缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。

缓存的命中率 = 命中缓存请求个数/总缓存访问请求个数 = hit/(hit+miss)

“淘汰缓存”还是“更新缓存”

1、更新缓存:数据不但写入数据库,还会写入缓存。优点:简单
2、淘汰缓存:数据只会写入数据库,不会写入缓存,只会把数据淘汰掉。优点:缓存不会增加一次miss,命中率高

结论

选择更新缓存还是淘汰缓存呢,主要取决于“更新缓存的复杂度”。

淘汰缓存操作简单,并且带来的副作用只是增加了一次cache miss,建议作为通用的处理方式。

先操作数据库 vs 先操作缓存

640-4kB
假设先写数据库,再淘汰缓存:第一步写数据库操作成功,第二步淘汰缓存失败,则会出现DB中是新数据,Cache中是旧数据,数据不一致
640 (1)-4.3kB
假设先淘汰缓存,再写数据库:第一步淘汰缓存成功,第二步写数据库失败,则只会引发一次Cache miss

结论

先淘汰缓存,再写数据库。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注