@1234567890
2017-05-22T13:25:49.000000Z
字数 413
阅读 1129
架构
缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。
缓存的命中率 = 命中缓存请求个数/总缓存访问请求个数 = hit/(hit+miss)
1、更新缓存:数据不但写入数据库,还会写入缓存。优点:简单
2、淘汰缓存:数据只会写入数据库,不会写入缓存,只会把数据淘汰掉。优点:缓存不会增加一次miss,命中率高
选择更新缓存还是淘汰缓存呢,主要取决于“更新缓存的复杂度”。
淘汰缓存操作简单,并且带来的副作用只是增加了一次cache miss,建议作为通用的处理方式。
假设先写数据库,再淘汰缓存:第一步写数据库操作成功,第二步淘汰缓存失败,则会出现DB中是新数据,Cache中是旧数据,数据不一致
。
假设先淘汰缓存,再写数据库:第一步淘汰缓存成功,第二步写数据库失败,则只会引发一次Cache miss
。
先淘汰缓存,再写数据库。