博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常见缓存问题
阅读量:5051 次
发布时间:2019-06-12

本文共 488 字,大约阅读时间需要 1 分钟。

1. 缓存穿透

  指使用不存在的 key  进行大量的高并发查询,导致缓存无法命中,每次的请求都穿透到后端数据库系统进行查询,使数据库压力增大直到被压死。

  处理方法有

  •   将空值缓存
  •   检查 key 的合法性
  •   对服务设计限流和熔断

2. 缓存并发

  当一个缓存 key 过期时,因为访问这个缓存 key 的请求量比较大, 多个请求同时发现缓存过期,因此多个请求会同时访问数据库来查询最新数据,并写回缓存

  处理方法

  •   分布式锁,保证对于每个 key 同时只有一个线程去查询后端服务
  •   本地锁,同分布式锁,但只保证一个节点上不会有多个线程在更新
  •   软过期,对缓存中的数据设置失败时间,不是使用缓存服务提供的时间,而是业务层在数据中存储过期时间,由业务程序判断是否过期并更新,程序发现数据过期时再通过一定的策略保证只有一个线程更新缓存

3. 缓存雪崩

  服务器重启或者大量缓存集中在某一个时间段内失效

  处理方法

  •   对不同的数据使用不同的失效时间

转载于:https://www.cnblogs.com/randomsort/p/9585174.html

你可能感兴趣的文章
HDU 1548 A strange lift (Dijkstra)
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
yii模型ar中备忘
查看>>
JVM内存回收机制简述
查看>>
洛咕 P2480 [SDOI2010]古代猪文
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>
dijkstra (模板)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>