本文转载自https://mp.weixin.qq.com/s/4W7vmICGx6a_WX701zxgPQ,对原文内容做二次修改。
如何保证缓存和数据库一致性,很多人对这个问题,依旧有很多疑惑:
到底是更新缓存还是删缓存?
到底选择先更新数据库,再删除缓存,还是先删除缓存,再更新数据库?
为什么要引入消息队列保证一致性?
延迟双删会有什么问题?到底要不要用?
…
这篇文章,我们就来把这些问题讲清楚。
引入缓存提高性能
我们从最简单的场景开始讲起。
如果你的业务处于起步阶段,流量非常小,那无论是读请求还是写请求,直接操作数据库即可,这时你的架构模型是这样的:

但随着业务量的增长,你的项目请求量越来越大,这时如果每次都从数据库中读数据,那肯定会有性能问题。
这个阶段通常的做法是,引入「缓存」来提高读性能,架构模型就变成了这样:

当下优秀的缓存中间件,当属 Redis 莫属,它不仅性能非常高,还提供了很多友好的数据类型,可以很好地满足我们的业务需求。
但引入缓存之后,你就会面临一个问题:之前数据只存在数据库中,现在要放到缓存中读取,具体要怎么存呢?
最简单直接的方案是「全量数据刷到缓
订阅专栏 解锁全文
1475





