学习地址原文:https://www.zhihu.com/question/319817091/answer/2110995185
我仔细阅读文章之后
先更新缓存,在更新数据库,会发生数据库和缓存的不一致
先更新数据库,在更新缓存 如果有并发的情况下会有不一致的问题
所以采用先更新数据库,再删除缓存的策略
“更新”缓存会降低缓存命中率,浪费服务器资源 所以要删除缓存
得到最后的解决方案是:
1、先更新数据库
2、 再删除缓存 (MQ)
意思是在第二步引入MQ删除缓存的方案
第二步引入mq是因为mq有完美的重试机制,解决了第二步失败的问题
使用延迟队列是解决 (主从库同步)场景下的问题,时间需要自己评估
那可能有这样的疑问:

然后针对于主从库延迟和延迟双删问题
是关于「读写分离 + 主从复制延迟」情况下,缓存和数据库一致性的问题
那解决办法还是把缓存删掉
但是,不能立即删,而是需要「延迟删」,这就是业界给出的方案:缓存延迟双删策略。

如果看不懂我解释的,可以看原文章
对于mq延时队列我这个文章内第7部分有实操:
.NetCore 使用 RabbitMQ (交换机/队列/消息持久化+mq高级特性+死信队列+延迟队列)_netcore rabbitmq-优快云博客