在互联网架构中,面对高流量的业务场景,数据库+缓存是一个经常被使用的组合策略。而在使用数据库+缓存的业务场景中,数据库缓存数据一致性
无疑是最重要的一个点。
接下我们将分析一些不同的缓存策略,以及各方案的优缺点。业务场景主要基于数据读取
、数据更新
两大场景。
cache aside
在cache aside模式下,是由Application层去做缓存数据的刷新操作。
在数据更新场景下,也可以选择在更新完数据库后,直接删除缓存。然后在下次读取时,按照数据查询场景去加载缓存。
image.png
read through / write through
在cache aside模式下,我们Application需要同时去处理数据库逻辑和缓存逻辑。
Read/Write through模式下,Application只和cache交互,由cache自己去处理从数据库加载数据、更新数据库工作。
write back(write behind)
write back和write through运行模式一致,但是数据库更新操作采用的是异步模式,因此可以极大的提高写数据的效率。但是带来的问题是数据更新不能及时的更新到数据库,另外cache也需要记录数据更新历史并进行异步刷新数据库,带来了编程的复杂性。
常见问题及解决方案
主从延迟
TODO
缓存穿透
TODO
参考资料
https://blog.bluzelle.com/things-you-should-know-about-database-caching-2e8451656c2d
https://vladmihalcea.com/a-beginners-guide-to-cache-synchronization-strategies/
https://codeahoy.com/2017/08/11/caching-strategies-and-how-to-choose-the-right-one/
https://coolshell.cn/articles/17416.html
网友评论