首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
这瓜保熟吗
Java
只有极高并发才可能出现楼主说的问题,上队列串行化可以解决
点赞
送花
回复
分享
发布于 2019-09-08 09:31
秋招专场
校招火热招聘中
官网直投
相关推荐
土黑娃儿
05-23 19:36
四川大学 金融学类
阿里淘天产品暑期实习二面
一面顺利通过了,就约了二面,二面是ld面的,感觉还是有一定压力的1.怎么理解产品运营、策略产品和功能产品三者的关系?2.实习经历深挖:怎么看待关于项目的指标增长?这个需求来源是?你主要做了什么?你认为有更好的优化链路吗?3.你怎么看待小红书电商生态?4.从产品角度看:你认为我们的优势和劣势是什么?5.你自己的偏好更想从事哪方面的产品,为什么?6.你认为你自己与岗位匹配的点在哪里?7.过往实习中遇到的困难是什么?怎么去解决的?
查看7道真题和解析
产品面经
点赞
评论
收藏
转发
TrustZone
今天 16:36
上海华为技术有限公司_安全工程师
为什么都在劝退计算机国企?
国企里面,IT部门是成本部门,不是利润部门,重要的事情说三遍: 是成本部门,不是利润部门!是成本部门,不是利润部门!是成本部门,不是利润部门!这就意味着你在整个企业里的地位是最低的,因为你是成本,你是消耗,你的部门的资源会拿到的最低,奖金会最少,会很难涨工资。出事了IT部门又往往是最容易背锅的部门。领导说“不计代价”要实现某目标的时候,你就是那个“代价”。在国企IT部门里工作时间长了,长进最大的不是技术,也不是管理,而是甩锅。国企计算机进去以后会发现没有多少真正的技术人员,而都是所谓的“管理人员”,国企的绝大多数项目都不是自己人开发,而是找外包公司开发,国企自己的计算机人员的角色就是对接这些...
投递珍爱网等公司6个岗位 >
点赞
评论
收藏
转发
在北极遛企鹅
05-22 00:11
西安技师学院 计算机类
京东违约
感谢东哥在秋招末期捞我 ,最后还是打算留家里了,说实话违约的那一刻还是有点难受的,也拖了很久,留给下一位兄弟吧
点赞
评论
收藏
转发
菜鸡天天一轮游
05-27 18:59
已编辑
中山大学 数学类
救救孩子吧
985废物,就做一个苍穹外卖,现在四月底了也没有offer,该怎么更改我的简历啊。更新:现在不是四月底了,是五月底了,项目说实话跟着教程做的,我也说不上有啥难点。star法则用不上啊
点赞
评论
收藏
转发
王阿清啊
05-23 18:17
已编辑
牛客运营
听劝,改简历不能改命,但能增加机会
简历很重要,不用多说,那应届生如何写好个人简历? 每天都会看到牛友们发帖求助,所以我们特意奉上简历法宝!首先记住以下思路其实道理都很简单,难在完全做到!学历、背景这些已经是客观事实,我们可以改变的就是“表达效果”同样一件事情,换一种表达方式则会达到不同的效果,让HR更能认定你的胜任能力!因此,牛客特意开放【简历点评】服务!限量免费使用,先到先得!我们会针对性提出优化建议,提高你的简历竞争力!同时还会根据简历内容,模拟面试押题,助你360度备战!扫码立即使用>>>PS:有任何疑问或建议,可在帖下留言~
点赞
评论
收藏
转发
点赞
20
评论
分享
回复帖子
提到的真题
返回内容
招聘动态
查看更多
博士生招聘专场开启啦
全站热榜
1
...
毕业第一课之租房攻略
2.5W
2
...
【奖】这个夏天🍉,和牛牛一起打卡刷题~
2.2W
3
...
2024华为-硬件面试题目汇总
1.5W
4
...
美团后端日常实习面经
8576
5
...
拼多多一面
7363
6
...
25暑期实习的心态变化 & 拥抱变化
7002
7
...
拼多多笔试 0526 24届算法
4456
8
...
不要再外卖点评了
4297
9
...
想知道双非的学长学姐都在简历上写什么进大厂了
4276
10
...
回首向来萧瑟处,也无风雨也无晴
4166
正在热议
#
和牛牛一起刷题打卡
#
4984次浏览
454人参与
#
机械制造薪资爆料
#
341717次浏览
4057人参与
#
牛客帮帮团来啦!有问必答
#
991438次浏览
15341人参与
#
通信硬件薪资爆料
#
242829次浏览
2286人参与
#
腾讯工作体验
#
146986次浏览
1410人参与
#
你觉得机械有必要实习吗
#
10366次浏览
143人参与
#
如何写一份好简历
#
301764次浏览
4333人参与
#
秋招开了,你想投哪些公司呢
#
130034次浏览
3392人参与
#
实习必须要去大厂吗?
#
18397次浏览
265人参与
#
你的简历改到第几版了
#
323623次浏览
4865人参与
#
机械制造2024笔面经
#
410274次浏览
6056人参与
#
毕业租房也有小确幸
#
32570次浏览
1966人参与
#
2022毕业生求职现身说法
#
20744次浏览
313人参与
#
0offer互助地
#
53454次浏览
558人参与
#
晒一晒我的offer
#
3657038次浏览
56981人参与
#
2022届毕业生现状
#
337637次浏览
4598人参与
#
为什么国企只招应届生
#
56311次浏览
411人参与
#
产品人专业大盘点
#
15132次浏览
120人参与
#
浅聊一下我实习的辛苦费
#
93732次浏览
918人参与
#
视觉/交互/设计岗位评价
#
3378次浏览
61人参与
牛客网
牛客企业服务