当前位置: 首页 > news >正文

高并发40问学习笔记

1.缓存穿透

缓存穿透是指大量访问不能在缓存中命中,需要去数据库访问,但数据库能支持的访问量是有限的,如果缓存命中率可能下降1%都会影响数据库的可用性。

解决缓存穿透最简单的方式是限制请求的数量,然后对于一个具体的问题:查找用户信息,如果大量对未注册信息的查找,缓存不能命中,直接就去数据库查找,会造成大量访问的问题。

一种解决思路是,缓存中存储有的用户信息,比如key,或者对于一次查找不存在的用户,在查找不存在之后就在缓存中存储不存在的用户,这样就可以当一个人反复查找相同的不存在的用户的时候,只有第一次会去访问数据库,之后都在缓存层被阻挡了。

更好的解决思路是使用布隆过滤器,布隆过滤器能告诉我们有哪些,哪些不存在,而使用的空间会缩减几十倍,布隆过滤器的特点是判断存在的有可能不存在,但是判断不存在的就一定不存在,这是可以接受的错误,如果反过来的话,判断了不存在我们也不能保证真的不存在,仍然需要去数据库确定。

2.缓存可用性问题

从客户端、中间件、服务端三个角度去考虑,在客户端可以采用多缓存,分布式的方式,这样可以避免缓存故障造成缓存不可用,也可以降低单一缓存的访问量。

中间件可以控制对数据库的直接访问量。

在服务端可以通过监控节点的可用性控制,在redis中有哨兵集群的概念,多个哨兵通过消息是否能得到回复判断主库是否下线,然后使用少数服从多数的原则来选择新的从库成为主库,通知其他从库新主库的存在。

3.消息队列

消息队列是把任务放在队列中,具体场景就是秒杀的情况,对于一个电商平台,平时的写访问是每秒100条,而当办秒杀活动的时候可能临时的突发访问是一万,是十万,是不能被承受的,如果为了这种情况单独设计分库分表的内容,然后在活动之后缩减,是很浪费的,这种突发情况很长时间才会发生一次,且发生时间比较短。

消息队列的功能有解耦、异步响应、削峰填谷,使用消息队列队列后边的任务是有一定的延迟的,只要延迟是可以接受的就可以使用消息队列,比如在秒杀系统,用户是接受等几秒,等几十秒的,使用消息队列解耦则是两个不同的系统通信,如果直接调用接口通信,如果对方的api更改,我们的处理代码也要做对应的更改,如果使用消息队列,可以把数据放在消息队列上由对方需要的时候去获取数据。

4.总结

对于缓存命中率下降的影响,我之前没有认识到重要性,然后布隆过滤器我是在数据结构与算法之美学的,是算多个哈希。

http://www.jsqmd.com/news/481839/

相关文章:

  • 通达信【反弹低吸寻机】副图与反弹低吸寻机指标公式CJM99分享源码
  • 2026六大城市高端腕表“隐形故障”大数据:北京爱彼摆轮游丝、上海江诗丹顿表盘氧化、杭州宝玑月相调校避坑指南 - 时光修表匠
  • 收藏!使用Python读写Excel大数据文件的3种有效方式
  • XlsxWriter,一款强大的Python Excel处理库
  • HTTP 协议 qeury 参数的说明 - liyan
  • 2026年度北京上门回收老酒名酒正规机构官方测评排行 - 品牌排行榜单
  • 盘式电机:电动车驱动的未来之星
  • 基于时间约束的CAN网络管理一致性测试方法复现与实现
  • 2026年2月,探寻受欢迎的成都火锅品牌都有谁,附近火锅/火锅/牛肉火锅/美食/地摊火锅/社区火锅,成都火锅品牌排行 - 品牌推荐师
  • 2026六大城市高端腕表维修“二次损伤”调查报告:北京上海百达翡丽、南京杭州欧米茄养护避坑全解析 - 时光修表匠
  • DigVPS 测评 - 新增商户 HostBlazer 并奉上 US Central - Dallas 产品详评数据,性能不错,适合建站,九折出售中。
  • 北京名酒老酒上门回收实测:4家靠谱商家测评排名,藏家变现不踩坑 - 品牌排行榜单
  • 3-sum 问题 - liyan
  • emacs! start org-mode! --org-mode使用备注 - liyan
  • python调试方法(其一) - liyan
  • CLI-Anything + Gear 最佳实践与踩坑修复沉淀
  • ratelimit服务流量限制 - liyan
  • 北京卡地亚维修、深圳爱彼保养、杭州万国检修|6城高端腕表维修科普指南 - 时光修表匠
  • windows用户有哪些必备的小工具软件能大幅提高效率而且占用资源低?
  • web中各个标签的关系
  • CF2208D1,D2 Tree Orientation (Easy,Hard Version) Solution
  • 2026年3月偏心半球阀批发厂家排行榜单,优质源头厂推荐,偏心半球阀厂家技术领航者深度解析 - 品牌推荐师
  • 上海积家维修、深圳宝玑保养、南京昆仑检修|6城高端腕表维修科普指南 - 时光修表匠
  • 百考通精准贴合学生写作痛点,打造“一站式”毕业论文服务体系
  • 学习笔记+ZY_75843《机器人操作系统(ROS2)入门与实践 》_刘相权等+记录
  • 告别学术焦虑:百考通AI,覆盖从“降AI痕迹”到“降重复率”的全场景需求
  • 网络流 学习笔记(施工中)
  • 守住学术原创底线!百考通AIGC检测,筑牢学术原创防线,为论文合规性保驾护航
  • 直接上结论:10个AI论文网站测评!继续教育毕业论文写作必备工具推荐
  • 百考通AI:让文献综述从繁琐的体力劳动,转变为高效的学术洞察过程