首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Lyh0
2019-09-07 17:11
已编辑
厦门大学 Java
关注
已关注
取消关注
关于数据库和缓存一致性问题
关于数据库和缓存一致性问题,网上的说法大都是先更新数据库,再删除缓存。可是如果是 :
1.线程A更新数据库
2.线程B查询从缓存中得到旧数据
3.线程A让缓存失效。
这样线程B不就是得到脏数据吗??请问有大佬帮忙解答一下吗?
#MySQL#
提示
全部评论
推荐
最新
楼层
安静的小白
华东理工大学 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
练绝活
阿里巴巴_大淘宝技术_研发工程师
https://coolshell.cn/articles/17416.html
点赞
回复
分享
发布于 2019-09-07 15:02
统行
西安石油大学 Java
先更新DB,在删除缓存,损失点一致性,虽然可能第一时间读不到最新的,但是逻辑没问题
点赞
回复
分享
发布于 2019-09-07 15:01
这瓜保熟吗
华为_软件工程师
只有极高并发才可能出现楼主说的问题,上队列串行化可以解决
点赞
回复
分享
发布于 2019-09-08 09:31
哈哈(ಡωಡ)hiahiahiamn
门头沟学院 Java
弄个操作顺序的队列
点赞
回复
分享
发布于 2019-09-07 16:48
Lyh0
楼主
厦门大学 Java
如果是针对秒杀这种一致性要求很高的场景呢?我看慕课上面就是直接用redis单线程访问控制,然后用消息队列来实现最终一致性。可是这样做性能应该很低下吧?
点赞
回复
分享
发布于 2019-09-07 15:20
C.A.Y.P
五邑大学 Java
牺牲点一致性
点赞
回复
分享
发布于 2019-09-07 15:17
小度小度
南京大学 Java
感觉和事务的隔离性有关,四种隔离级别可以看下,如果隔离级别是脏读,那就有可能读到脏数据
点赞
回复
分享
发布于 2019-09-07 15:01
yzltrs
江西财经大学 Java
应该是先删缓存再更新据库吧。。。我认为流程是:先把缓存的数据删了,然后更新数据库,最后重新注入缓存
点赞
回复
分享
发布于 2019-09-07 14:56
暂无评论,快来抢首评~
相关推荐
01-19 10:04
快手_快STAR广告引擎(准入职员工)
光峰科技内推,光峰科技内推码
结构工程师面试经验: 1. 自我介绍 2. 项目介绍 3. 使用的三维软件、仿真软件是什么? 4. 建的模型里几个零部件之间的约束方式 5. 对身边常见的一些产品的内部构件有什么了解? 6. 它们通过什么方式组装/连接? 7. 如果给你个鼠标让你设计,首先要了解什么参数和内容? 8. 对结构工程师岗位的认知 9. 未来的职业规划 10. 工作地点的选择 11. 家庭情况 12. 反问环节光峰科技2026届校园招聘进行中~【招聘岗位】光学 / 硬件 / 算法岗 / 产品研发类 / 技术研发类 / 产品类【我们提供】极具竞争力的薪酬回报机制+产品技术重大创新奖金、专利奖、国际三大工业设计奖等专项激...
点赞
评论
收藏
分享
01-20 10:50
蚌埠坦克学院 嵌入式软件开发
让AI写一个Linux操作系统属实太为难了
最近我突然想起一个问题:让 AI 写一个 Linux 操作系统,这事儿是不是太难了?说出来可能有点好笑,但确实是我自己提的。那一瞬间我也觉得自己有点冲动——好像只要把“写一个操作系统”丢给 AI,就能轻松实现一样。可是想想就知道不现实。Linux 不是一个简单的程序,而是一整套复杂的系统:内核、驱动、文件系统、网络、调度……每一部分都要精细设计、反复测试。更别提它要在真实硬件上稳定运行,哪怕一个小错误都会崩溃,甚至造成数据损坏。AI 可以帮你写示例、解释原理、生成代码片段,但它无法替代长期的工程实践和硬件调试。就像让 AI 去盖一栋楼,AI可以画图、出方案,但真正动工、验收、修复问题,还得靠人...
你给AI提过哪些离谱的需...
点赞
评论
收藏
分享
01-12 20:04
天津师范大学 Web前端
大四想找份前端开发实习
请问简历怎么改啊,投了好多但是没有回应,感觉是简历出问题了
听劝,我这个简历该怎么改...
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
2025-12-21 23:42
想问下92的同学,宿舍秋招大厂的情况,真就人均大厂吗
投票
#那些拿到大厂offer的简历长啥样# #那些拿到大厂offer的简历长啥样# #双非有机会进大厂吗# #字节# #腾讯# #阿里# #阿里# #快手# #百度# #小红书#
Twilight_m...:
论寝室我寝室除了我都是懒得卷互联网的选调考公人。论实验室组那确实除了我以外都是大厂✌️
那些拿到大厂offer的...
点赞
评论
收藏
分享
01-20 19:00
中国民用航空飞行学院 数据分析师
数分?真的还值得去学吗?
作为一个双非大数据专业的大四学生,自己在大三选择择业方向时,毫不犹豫的选择了数据分析作为自己一开始的求职方向,那么作为花费很多精力学习数分,找过多段数据实习,且经历了一整个秋招的可怜大学生,关于数分的态度又是怎样呢?首先我想先根据自己的过往经验来给数分下一个定义,目前的数分岗主要有两种情况,一种是非常纯粹的数分,涉及AB测试,数据埋点,机器学习相关内容的,这一部分岗位对技术和学历的要求极强;而另一部分岗位则是偏向业务侧,相较于数分,可能更偏向数据策略运营,这一类岗位在部分公司也会直接写成运营岗。相信每一个对数分有兴趣的同学,或多或少都在网上看到过,纯粹的数分岗是非常吃学历的,这一点我深有体会,...
为了入行xx岗,我学了_...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
21
分享
评论
提到的真题
返回内容
招聘动态
查看更多
牛客网申助</br>备战春招大杀器
27届寒假/转正实习汇总
全站热榜
更多
1
...
实习产出如何包装?
1.0W
2
...
27届实习时间线
6765
3
...
【官方活动】牛客新春计划:给陌生人的一封信
4790
4
...
32岁程序员猝死,底薪3千要24h待岗
2815
5
...
HR约你面试,句句话都有目的!
2602
6
...
后端从0开始来得及吗
1649
7
...
实习生怎么快速融入团队
1626
8
...
20多岁最痛苦的年纪
1519
9
...
字节实习规划求助
1491
10
...
阶段性的迷茫不过是人生正在“换挡”
1366
创作者周榜
更多
正在热议
更多
#
哪些公司开春招了?
#
11282次浏览
121人参与
#
四大天坑是哪四家?
#
101035次浏览
235人参与
#
上班以后,你还有哪些坚持的爱好?
#
7789次浏览
182人参与
#
你觉得什么岗位会被AI替代
#
34697次浏览
229人参与
#
你最近因为什么迷茫?
#
35511次浏览
580人参与
#
互联网公司评价
#
479221次浏览
4082人参与
#
找工作以来,你最看不惯__
#
15924次浏览
322人参与
#
工作压力大怎么缓解
#
138274次浏览
1247人参与
#
实习离职怎么跟领导说
#
76039次浏览
432人参与
#
AI coding的好用工具分享
#
19762次浏览
383人参与
#
实习怎么做才有更好的产出
#
12892次浏览
229人参与
#
实习教会我的事
#
51895次浏览
406人参与
#
聊聊你的被动加班经历
#
3417次浏览
64人参与
#
你都在哪些场所面过试?
#
20895次浏览
227人参与
#
工作一周年分享
#
50074次浏览
262人参与
#
实习生工资多少才算正常?
#
13584次浏览
202人参与
#
领导做过最不靠谱的事
#
14957次浏览
222人参与
#
拼多多工作体验
#
44434次浏览
285人参与
#
你给AI提过哪些离谱的需求?
#
6538次浏览
171人参与
#
面试等了一周没回复,还有戏吗
#
196521次浏览
1677人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务