首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
Lyh0
2019-09-07 17:11
已编辑
厦门大学 Java
关注
已关注
取消关注
关于数据库和缓存一致性问题
关于数据库和缓存一致性问题,网上的说法大都是先更新数据库,再删除缓存。可是如果是 :
1.线程A更新数据库
2.线程B查询从缓存中得到旧数据
3.线程A让缓存失效。
这样线程B不就是得到脏数据吗??请问有大佬帮忙解答一下吗?
#MySQL#
提示
全部评论
推荐
最新
楼层
统行
西安石油大学 Java
先更新DB,在删除缓存,损失点一致性,虽然可能第一时间读不到最新的,但是逻辑没问题
点赞
回复
分享
发布于 2019-09-07 15:01
练绝活
阿里巴巴_大淘宝技术_研发工程师
https://coolshell.cn/articles/17416.html
点赞
回复
分享
发布于 2019-09-07 15:02
安静的小白
华东理工大学 Java
老哥,我的理解:你的第3步错了,应该是让缓存失效。你说的那种情况是有可能发生的,A更新成功,B过来读缓存成功,获取老数据,之后A再让缓存失效;从此以后,后面的查询读的都是新数据了,因为缓存已经失效了,需要读数据库,然后把新的值设置到缓存里。。。所以你说的这种情况,只会影响那一次查询,只有一次,一次的概率很低很低,相对于先删缓存,在更新数据库造成的脏数据好太多了。 我的理解:1.先更新数据库,再删缓存最大的问题在于更新成功,没办法确保删缓存成功,因为没办法采用单机事务去保证这两个操作的原子性,所以可以采用一种不断重试的ACK机制,你可以自己写个重试机制,也可以使用市面上经常用的mq来保证,因为mq为了保证容错性,也实现了ack机制,步骤是可以用一个工具将mysql的binlog日志抓取出来,然后采用mq去确保删缓存一定会成功; 2.先更新数据库,再删缓存还有个弊端是:(1)A读数据,缓存失效,需要读数据库,(2)B更新数据库,更新成功,(3)B是缓存失效,(4)A将读出来的数据设置到缓存里,此种情况是会产生数据不一致的,但是这是极限状态更新数据库需要锁表,读数据库不需要,写的时间大于读的时间,所以此种情况很难发生,基于以上讨论,所以先更新数据库,再删缓存,相对于其他方法是比较理想的(或许未来会有更好的方法,但是目前这种方法所带来的的影响相对于其他的是较小的) 以上仅供参考,个人见解
点赞
回复
分享
发布于 2019-09-07 16:14
yzltrs
江西财经大学 Java
应该是先删缓存再更新据库吧。。。我认为流程是:先把缓存的数据删了,然后更新数据库,最后重新注入缓存
点赞
回复
分享
发布于 2019-09-07 14:56
小度小度
南京大学 Java
感觉和事务的隔离性有关,四种隔离级别可以看下,如果隔离级别是脏读,那就有可能读到脏数据
点赞
回复
分享
发布于 2019-09-07 15:01
C.A.Y.P
五邑大学 Java
牺牲点一致性
点赞
回复
分享
发布于 2019-09-07 15:17
Lyh0
楼主
厦门大学 Java
如果是针对秒杀这种一致性要求很高的场景呢?我看慕课上面就是直接用redis单线程访问控制,然后用消息队列来实现最终一致性。可是这样做性能应该很低下吧?
点赞
回复
分享
发布于 2019-09-07 15:20
哈哈(ಡωಡ)hiahiahiamn
门头沟学院 Java
弄个操作顺序的队列
点赞
回复
分享
发布于 2019-09-07 16:48
这瓜保熟吗
华为_软件工程师
只有极高并发才可能出现楼主说的问题,上队列串行化可以解决
点赞
回复
分享
发布于 2019-09-08 09:31
还没有回复哦~
相关推荐
11-18 23:01
已编辑
华中科技大学 C++
算能科技 音视频 日常实习 面经
不是很复杂,20min自我介绍,聊天:为什么想来北京,你不是在上海吗?来过北京吗?对音视频有兴趣吗?如何看待目前实习的这份工作?等等问题:yuv420相比rgb节省多少空间?或者说同样像素yuv的大小和rgb大小的关系?音画同步靠什么?音画不同步的情况?如果视频比音频慢了?对于拉流有了解吗?(不了解,目前主要了解的是,拉流后,从读取开始的这部分的音视频技术)h264?linux用过吗?隔一天后hr通知通过,谈入职,急着让我去,但我得15天后才入职。等待offer审核ing,不知道会不会因为入职时间收不到offer。发出来面经就当作攒人品啦~
查看12道真题和解析
点赞
评论
收藏
分享
昨天 04:39
南昌大学 Java
26届求助:老生常谈了,考研还是就业
26届211本,目前在准备就业,大一大二啥都没学,这学期大三开学才开始学,学的很差,但是通过学校找到了一家中厂下学期开学的实习(难度比普通自己找低很多)。刚开始没想过考研,不想读研卷学历,后来开始考虑,担心吃学历的亏。核心问题就是:我这种情况,工作三年和读研比哪个以后发展更好,或者差不多。看牛客上还是大部分是研究生能拿到很好的offer,但社招应该也不看牛客,不知道到底是什么情况,求求过来人帮帮我吧
scoxty:
我大三上才开始系统学习的
开发本科够了,早准备早投递
投递牛客等公司10个岗位 >
如果能重来,就业or读研你选哪个?
你会选择考研还是直接就业
点赞
评论
收藏
分享
09-29 17:44
已编辑
蔚来_测(准入职员工)
lastday
还能再见吗😭😭😭
//鲨鱼辣椒:
见不了了我实习了四个月上周再投筛选了一天就给我挂了
点赞
评论
收藏
分享
11-15 09:35
美的集团_电子器件产研部_电子器件制造工程师(准入职员工)
美的内推美的面经
面经前面有一轮AI面试和测评然后才有一面(1V1)15分钟左右,面试官态度非常好跟之前格力的kpi面形成鲜明的对比,面试过程中一直面带微笑。1、自我介绍2、采购岗位认知3、在校最有成就感的一件事4、喜欢读书吗(当时回答的喜欢,又问最近读什么书)5、在校经历或者是社团经历6、反问有的记不清了二面两个面试官一个应该是base地部门的,另一个是总部的。专业面问的问题涉及很多的专业知识,都是硬货还有解决问题的能力时间15min。面试之前准备的项目和实习经历一个没问,还担心让做英文自我介绍(写了一篇,实在背不下去还好没要求)。刚开始紧张自我介绍磕磕绊提问的时候才好些,而且网老卡又重新换了一个地。1、自我...
点赞
评论
收藏
分享
点赞成功,聊一聊 >
点赞
20
评论
分享
回复帖子
提到的真题
返回内容
招聘动态
查看更多
杉川机器人
2025校园招聘
字节跳动
2025校园招聘
字节跳动Data
2025校园招聘
快手Star
2025届招聘
快手
销售类投递专区
库洛游戏
全站热榜
1
...
成都 Java 社招面经(5年经验)
1.5W
2
...
我与阿里
1.1W
3
...
牛客创作赏金赛:首发动态,100%拿现金!
8812
4
...
秋招是时候收官了
6676
5
...
秋招颗粒无收,我要何去何从
5464
6
...
收到offer了!!!!
5263
7
...
我的秋招结束了,五年前的我会想到这一切吗
5097
8
...
26日常实习小红书面经
5007
9
...
发达喽,牛客居然请来了TA为我颁奖!遥遥领先!
4774
10
...
11.9 同程一面(JAVA、逆向 -北京)
4189
正在热议
#
晒一晒我的offer
#
9706367次浏览
104823人参与
#
机械只有读研才有出路吗?
#
7915次浏览
103人参与
#
北方华创开奖
#
21057次浏览
244人参与
#
地方国企笔面经互助
#
1934次浏览
6人参与
#
滴滴求职进展汇总
#
78811次浏览
688人参与
#
考研失败就一定是坏事吗?
#
36292次浏览
355人参与
#
机械人,签完三方你在忙什么?
#
23005次浏览
119人参与
#
总结:哪家公司面试体验感最差
#
23478次浏览
115人参与
#
机械应届生薪资要多少才合适?
#
11768次浏览
55人参与
#
学历or实习经历,哪个更重要
#
39073次浏览
280人参与
#
选完offer后,你后悔学本专业吗
#
6594次浏览
43人参与
#
查收我的offer竞争力报告
#
13342次浏览
191人参与
#
机械人怎么评价今年的比亚迪
#
40897次浏览
141人参与
#
应届生被毁约被毁意向了怎么办
#
24094次浏览
230人参与
#
00后45度躺现状
#
33602次浏览
295人参与
#
没有合适的工作,你会先找个干着,还是考公考研
#
35331次浏览
392人参与
#
秋招OC许愿
#
224129次浏览
1854人参与
#
如果能重来,就业or读研你选哪个?
#
45303次浏览
333人参与
#
大疆求职进展汇总
#
402697次浏览
2869人参与
#
实习,投递多份简历没人回复怎么办
#
2381807次浏览
34167人参与
#
双非能在秋招上岸吗?
#
99064次浏览
769人参与
牛客网
牛客企业服务