首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
暂无评论,快来抢首评~
相关推荐
05-16 19:13
叮咚买菜_商品运营(准入职员工)
叮咚买菜内推叮咚买菜内推码
前段时间参加了叮咚买菜的面试,现在想和大家分享一下我的经历,希望能给准备面试叮咚买菜的小伙伴一些参考。我应聘的是供应链专员岗位,通过校园招聘投递简历后,很快就收到了面试邀请。面试流程整体推进得比较快,效率很高。一面:是 HR 面,通过电话沟通。首先是让我进行自我介绍,大概 2 - 3 分钟,主要介绍了自己的教育背景、相关实习经历和个人优势。之后,HR 针对我的简历进行了深挖,问了我在实习中参与的具体项目,比如在 [实习公司名称] 实习时负责的供应链优化项目,详细询问了我在项目里承担的角色、遇到的困难以及如何解决的。还问了我对供应链管理的理解,以及为什么选择叮咚买菜这个公司和供应链专员这个岗位。...
点赞
评论
收藏
分享
05-12 10:53
已编辑
海康威视_测试(实习员工)
抖音电商测开一面
05.09下午一面自我介绍拷打实习(10min)计网:进程线程区别运行过程中会产生死锁,死锁的必要条件计网七层协议,五层协议TCP,UDP在那一层,区别有哪些tcp是通过哪些方式去保证它的可靠性的三次握手过程浏览器url全过程get和post的区别python:列表和元组区别is和==的区别数据库:创建一个表,char(10)和vchar(10)的区别数据库常见索引事务的四大特性开始算法最长无重复子字符串+一个sql(都撕出来了)反问:具体做什么有转正求建议攒人品,求继续推进 后续 已挂
查看14道真题和解析
实习进度记录
牛客创作赏金赛
点赞
评论
收藏
分享
05-11 00:47
湖北经济学院 Java
学项目只看教程,不动手写可以嘛?
目前写完了一个项目,感觉时间上有点赶,另外一个只想着看看教程,然后重点看看相关八股就好了,不知道面试官会不会看代码
程序员牛肉:
大部分不会看源码的。 对于校招生来讲,项目的本质是提供给面试官一个抓手来提问你各种八股和场景题。因此就算你不真实做这个项目,单纯捏造出来一些场景也是可以的。 要不要自己写一遍,关键还是看个人能力,因为有些项目你光跟着文档是搞不明白的。最后面试官问个啥你都不知道,那面试大概率也就挂了。 推荐你先只看教程和八股,然后一边投递一边根据面试中的问题来看视频解惑。
点赞
评论
收藏
分享
05-24 19:34
已编辑
门头沟学院 测试开发
美团测开二面-暑期实习
1.5h自我介绍➕25min项目八股:1.cookie和session2.http格式,状态码3.垃圾回收机制4.内存泄露5.测试相关八股,测试方法,测试工具的使用算法:括号匹配(easy)SQL:三张表,菜品,原料,比例表,查询成本最高的菜品(没撕出来)场景题:对扫码点餐功能设计测试用例AI:用过哪些ai,来干什么?有没有用过相关的API帮助开发反问:许愿:求求团子收留 ---------还愿了,已OC,已接
查看22道真题和解析
点赞
评论
收藏
分享
05-10 16:28
河南科技职业大学 Java
26届测试找实习,没人回,求建议
#投了多少份简历才上岸# #测试# #实习,投递多份简历没人回复怎么办# #简历被挂麻了,求建议#
投了多少份简历才上岸
实习,投递多份简历没人回复怎么办
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
20
分享
评论
提到的真题
返回内容
招聘动态
查看更多
26届投递链接合集
快手
25届补录+26届实习
26届实习内推合集
华泰Fintech星战营
全站热榜
更多
1
...
本科四年,我决定在即将毕业时转行
1.1W
2
...
极限春招小结
9322
字节暑期补捞
热聊中
3
...
这次是真的告别了!
9211
4
...
从后端的角度聊一聊:2728届想要搞开发的同学现在最应该干什么?
8405
5
...
上午拍毕业照,下午拍结婚照!牛友祝福我们吧!
8405
6
...
找工作找到厌倦了,晒一下毕业照吧!
6991
7
...
第一次给了美团
6387
8
...
26届找不到暑期实习也不必太焦虑!!!!
5698
9
...
极限春招一个月总结
5623
10
...
以为走散了,命运却又把我们安排到一起
4460
创作者周榜
更多
正在热议
更多
#
写给毕业5年后的自己
#
3939次浏览
65人参与
#
好好告别我的学生时代
#
40937次浏览
800人参与
#
华泰证券Fintech星战营
#
168126次浏览
191人参与
#
职场捅娄子大赛
#
317506次浏览
3250人参与
#
晒一下我的毕业照
#
31031次浏览
331人参与
#
华为求职进展汇总
#
4643008次浏览
28244人参与
#
如何缓解求职过程中的焦虑?
#
7174次浏览
94人参与
#
海信求职进展汇总
#
64840次浏览
357人参与
#
如果今天是你的last day,你会怎么度过?
#
22607次浏览
197人参与
#
当下环境,你会继续卷互联网,还是看其他行业机会
#
108205次浏览
781人参与
#
毕业季等于分手季吗
#
12383次浏览
126人参与
#
晒晒我司的端午福利
#
14815次浏览
99人参与
#
HR问:你期望的薪资是多少?如何回答
#
39935次浏览
524人参与
#
记录实习开销
#
24596次浏览
180人参与
#
我想象的实习vs现实的实习
#
280222次浏览
2214人参与
#
上班苦还是上学苦呢?
#
222687次浏览
1329人参与
#
视觉/交互/设计百问百答
#
43162次浏览
427人参与
#
如果中了500万,你会离职吗?
#
81943次浏览
649人参与
#
参加完秋招的机械人,还参加春招吗?
#
47776次浏览
544人参与
#
实习/项目/竞赛奖项,哪个对找工作更重要?
#
82778次浏览
1108人参与
#
工作两年想退休了
#
119832次浏览
1118人参与
牛客网
牛客企业服务