首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
牛客956769739号
获赞
5
粉丝
1
关注
5
看过 TA
26
北京工业大学
2023
Java
IP属地:天津
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客956769739号吗?
发布(1)
评论
刷题
收藏
牛客956769739号
关注TA,不错过内容更新
关注
2022-05-08 12:31
北京工业大学 Java
秒杀
友友们,本人太菜了,看了半天还是不懂秒杀扣库存和双写一致性这两个问题是什么关系?有没有带带代码的讲解给我推荐一下?我的问题:1秒杀设计应该有数据库和redis缓存,扣库存应该先扣数据库再删除缓存,那为什么分布式锁为什么加在redis上,这样redis扣完了,数据库并没有更新啊?2双写一致性只要更新了数据库就放入消息队列中比如kafka,然后redis消费删除缓存对吗?那多级缓存怎么实现呢?比如再加一个缓存caffine只要让caffine也当一个消费者删除缓存就可以了吗?
牛在天:
redis应该有两个作用,1、用分布式锁保障了双写一致性问题。2、数据缓存。 用分布式锁将数据库的更新和缓存的更新串行化。 多级缓存可以在网关,前端,jvm内存,Ehcache、redis等。 因为在秒杀的时候,服务器的压力很大的,当突然面对高并发量,服务器可能会发生宕机,这是不可容忍的,所以消息中间件是为了降低服务器压力,提高服务器响应速度,将消费者的消息放入队列中,当服务器压力不太大的时候再来处理这些请求,以便客户端的请求能快速响应。
0
点赞
评论
收藏
分享
1
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客企业服务