关注
来讲点原有的改造吧。
黑马点评有旧有的点赞系统,它是通过redis的Zset集合简单实现的。每次更新的时候更新数据库。但如果在高并发下,每一个用户点赞就要更新一次数据库,数据库的压力会非常大,崩掉也很正常。首先用户点赞后,采用redis自带的原子命令将点赞数更新,之后更新数据库。并发情况下更新数据库需要消息队列异步更新,采用批量消息执行和批量插入,将多次点赞执行消息一次插入执行,并做好补偿机制,保障消息任务执行失败的场景。
而在查询点赞排行榜的时候,若缓存失效了,此时查询数据库更新缓存。正常流程是先查库再重建缓存,但要考虑到高并发的影响防止将数据库打崩。第一步当前请求发现缓存失效,需要上分布式锁,要进行双重锁校验,之后推荐发送异步消息至消息队列进行重建缓存的逻辑,不建议当前请求重构缓存。之后当前请求可以等待正常的少量时间,返回更新后缓存中的值。若缓存迟迟未建立,推荐返回默认页面。
查看原帖
3 评论
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享


点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 国企还是互联网,你怎么选? #
122263次浏览 943人参与
# 找工作,行业重要还是岗位重要? #
8199次浏览 105人参与
# 五一之后,实习真的很难找吗? #
46608次浏览 335人参与
# 盲审过后你想做什么? #
12905次浏览 115人参与
# 小厂实习有必要去吗 #
42309次浏览 260人参与
# 领导秒批的请假话术 #
10134次浏览 76人参与
# 设计人如何选offer #
98516次浏览 690人参与
# 外包能不能当跳板? #
22237次浏览 191人参与
# 五一假期,你打算“躺”还是“卷”? #
32626次浏览 446人参与
# 考研可以缓解求职焦虑吗 #
21407次浏览 252人参与
# 如果校招重来我最想改变的是 #
245268次浏览 2781人参与
# 面试等了一周没回复,还有戏吗 #
115852次浏览 1078人参与
# 大疆的机械笔试比去年难吗 #
69699次浏览 603人参与
# 硬件人,你被哪些公司给挂了 #
46846次浏览 724人参与
# 如果有时光机,你最想去到哪个年纪? #
43410次浏览 770人参与
# 找工作前vs找工作后的心路变化 #
7228次浏览 64人参与
# 秋招前后对offer的期望对比 #
271815次浏览 2075人参与
# 面试中,你被问过哪些奇葩问题? #
63614次浏览 777人参与
# 写简历别走弯路 #
714703次浏览 7850人参与
# 一句话证明你在找工作 #
291559次浏览 2389人参与