关注
老哥,我的理解:你的第3步错了,应该是让缓存失效。你说的那种情况是有可能发生的,A更新成功,B过来读缓存成功,获取老数据,之后A再让缓存失效;从此以后,后面的查询读的都是新数据了,因为缓存已经失效了,需要读数据库,然后把新的值设置到缓存里。。。所以你说的这种情况,只会影响那一次查询,只有一次,一次的概率很低很低,相对于先删缓存,在更新数据库造成的脏数据好太多了。 我的理解:1.先更新数据库,再删缓存最大的问题在于更新成功,没办法确保删缓存成功,因为没办法采用单机事务去保证这两个操作的原子性,所以可以采用一种不断重试的ACK机制,你可以自己写个重试机制,也可以使用市面上经常用的mq来保证,因为mq为了保证容错性,也实现了ack机制,步骤是可以用一个工具将mysql的binlog日志抓取出来,然后采用mq去确保删缓存一定会成功; 2.先更新数据库,再删缓存还有个弊端是:(1)A读数据,缓存失效,需要读数据库,(2)B更新数据库,更新成功,(3)B是缓存失效,(4)A将读出来的数据设置到缓存里,此种情况是会产生数据不一致的,但是这是极限状态更新数据库需要锁表,读数据库不需要,写的时间大于读的时间,所以此种情况很难发生,基于以上讨论,所以先更新数据库,再删缓存,相对于其他方法是比较理想的(或许未来会有更好的方法,但是目前这种方法所带来的的影响相对于其他的是较小的) 以上仅供参考,个人见解
查看原帖
点赞 2
相关推荐
11-22 14:57
太原理工大学 线下拓展运营 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
269202次浏览 2264人参与
# 学历or实习经历,哪个更重要 #
44693次浏览 338人参与
# 北方华创开奖 #
23909次浏览 260人参与
# 地方国企笔面经互助 #
2962次浏览 7人参与
# 如果实习可以转正,你会不会放弃秋招 #
204959次浏览 2792人参与
# 选完offer后,你后悔学本专业吗 #
14449次浏览 107人参与
# 你觉得专业和学校哪个对薪资影响最大 #
28456次浏览 213人参与
# 0offer是寒冬太冷还是我太菜 #
889469次浏览 7933人参与
# 查收我的offer竞争力报告 #
20230次浏览 258人参与
# 你最想要的公司福利是? #
42481次浏览 151人参与
# 如何一边实习一边秋招 #
987934次浏览 12610人参与
# 应届生被毁约被毁意向了怎么办 #
28511次浏览 244人参与
# 一觉醒来,我觉醒了超级打工人系统 #
3410次浏览 36人参与
# 当你面对裁员会如何? #
26234次浏览 152人参与
# 没有实习经历,还有机会进大厂吗 #
807653次浏览 13859人参与
# 来聊聊机械薪资天花板是哪家 #
66408次浏览 448人参与
# 面试体验感最好的是哪家? #
83849次浏览 819人参与
# 机械应届生薪资要多少才合适? #
12568次浏览 61人参与
# 如果公司降薪,你会跳槽吗? #
24878次浏览 236人参与
# 如何写一份好简历 #
605834次浏览 8528人参与
# 寒假躺平还是提前实习 #
59766次浏览 459人参与