关注
除了布隆过滤器,解决缓存穿透问题的方法在实际应用中可以这样实施:
空对象缓存:
假设我们有一个电商网站,用户可以通过商品ID查询商品信息。有时,某些不存在的商品ID会被恶意用户大量请求,导致每次查询都会穿透缓存直接访问数据库。为了避免这种情况,我们可以采用空对象缓存策略。当查询一个不存在的商品ID时,我们在缓存中存储一个空对象或特殊标识,并设置一个较短的过期时间(如30秒)。这样,当相同的请求再次到来时,系统可以直接从缓存中返回空对象或标识,而不会再次查询数据库。
缓存预热:
在双11或大型促销活动之前,我们知道某些热门商品将会受到大量访问。因此,我们可以在活动开始之前,提前将这些热门商品的信息加载到缓存中。这样,在活动高峰期,这些热门商品的请求可以直接从缓存中获取,大大减少了数据库的访问压力。
设置缓存过期时间:
对于某些时效性较强的数据,如新闻、折扣信息等,我们可以为它们设置合理的缓存过期时间。在过期之前,系统可以通过后台任务或定时任务更新缓存数据。这样,即使缓存数据过期,系统也能在较短时间内重新加载新的数据到缓存中,避免了缓存击穿的情况。
限流与熔断:
在某些高并发场景下,为了保护系统不被过量的请求所压垮,我们可以采用限流策略。例如,使用Nginx或Apache的限流模块来限制单位时间内的请求数量。当请求量超过设定的阈值时,系统可以拒绝多余的请求或进行排队处理。同时,结合熔断机制,当系统检测到异常或缓存击穿等风险时,可以临时切断对数据库等关键服务的访问,返回默认数据或提示信息,等待系统恢复正常后再重新提供服务。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
02-22 23:36
西安财经大学 产品经理 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 秋招以来的AI面经问题1.5W
- 2... 32分钟投了18家网申,效率如何?1.3W
- 3... 2027届暑期实习大科普,为什么从来没人给你讲过这些事情?5272
- 4... 面试官视角聊聊:如何在AI浪潮中找到好工作?4143
- 5... 美团测开->腾讯后端,感谢那个不愿放弃的自我2606
- 6... 急哭了!985科班本三段大厂实习被阿里一脚踹飞!简历都没收!2566
- 7... C++ MySql 常考面试题总结2180
- 8... 面试被问到“agent的记忆机制怎么设计”,该怎么回答?2056
- 9... 没算力,能搞大模型吗?1986
- 10... 开了暑期实习的中大厂1759
正在热议
更多
# xx岗简历求拷打 #
23104次浏览 194人参与
# 应届生,你找到工作了吗 #
110703次浏览 665人参与
# 有转正机会的小厂实习值得去吗? #
13534次浏览 128人参与
# 开工第一帖 #
72587次浏览 1185人参与
# 你最讨厌面试被问什么 #
14715次浏览 157人参与
# 掌握什么AI技能,会为你的求职大大加分 #
16001次浏览 572人参与
# 我的求职精神状态 #
434629次浏览 3085人参与
# 业务面应该做哪些准备 #
96538次浏览 1061人参与
# 你找工作的时候用AI吗? #
178479次浏览 918人参与
# 电网求职进展汇总 #
39767次浏览 114人参与
# 牛友的志愿填报指南 #
50731次浏览 252人参与
# 荣耀求职进展汇总 #
1134358次浏览 5666人参与
# 你怎么看待AI面试 #
153139次浏览 819人参与
# 如何看待offer收割机的行为 #
1051960次浏览 6617人参与
# 携程求职进展汇总 #
896629次浏览 5970人参与
# 面试题刺客退退退 #
537971次浏览 7540人参与
# 工作不开心辞职是唯一出路吗 #
11278次浏览 48人参与
# 制造业的秋招小结 #
145472次浏览 2097人参与
# 听劝,这个简历怎么改 #
384321次浏览 1835人参与
# 金三银四,你有感觉到吗 #
700506次浏览 6102人参与
查看20道真题和解析